有趣的前端知识(三)

推荐阅读

有趣的前端知识(一)
有趣的前端知识(二)


文章目录

  • 推荐阅读
    • JS内置对象
    • JS外部对象
      • BOM模型
        • history对象
        • screen对象
        • navigator对象
      • DOM(文档对象模型)
        • DOM的方法(对于节点的操作)


JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。

JS内置对象

一切皆对象,方法即对象,可以直接作参数传入。

  1. String对象
var s="he";
var s=new String("he");
s.length;
  1. Number对象
var num=123.123;
console.log(num.toFixed(2));//保留2位小数
  1. Boolean对象
ture/false
  1. Array对象
var a=[100,299];
var a1=["zhangsna",25,true];//js中变量无类型,所以可以存各种类型的数据,Object
var b=new Array();
b=["aa",22];
//追加数据
b.push("adah");
console.log(b[2]);//adah
//数组倒转
var arr=[1,2,3];
arr.reverse();// 3 2 1
//数组排序
var c=[3,43,6,2,5];
c.sort();//输出后 2,3,43,5,6按照字符串来排的。并不单单是按照数的大小来比的。
比较方法:js内置的固定方法,按照字符串来比较值的大小。(字符串值转换为Unicode的值在进行比较);
使用匿名方法做参数,改变排序,默认由小到大;
c.sort(function(a-b){return a-b};);//2,3,5,6,43;
  1. Math对象

无需创建,直接调用属性和方法。

console.log(Math.PI);
console.log(Math.round(4.234));//取整,4
console.log(Math.round(4.577));//取整 ,5,四舍五入
  1. Date对象
    处理日期和对象。
var date=new Date();(时间一般来源用户的浏览器时间)var a=new Date("2022.11.23");(时间来源服务器)//转换为本地日期或者字符串;
console.log(d.toLocaleTimeString());
console.log(s.toLocaleDateString());
//获取时间分量
读 :getXXX(); 写:setXXX();
var r=a.getHours();
var x=a.getDate();
var  y=a.getMonth();
var day =(y+1)+"月"+x+"日";//月份从0 开始
console.log(day);//11月23日
  1. RegExp对象

正则表达式

var reg=/正则表达式/匹配模式;
var reg =/\d/g
var reg =new RegExp(正则表达式,模式);
var reg=new RegExp("\\d","g");

匹配模式
g:全局检测字符串
i :忽略大小写来检测字符串
正则表达式的方法

reg.exex(str);
//普通模式:从str中找出和reg相匹配的第一个字符串;
//全局模式:从第n次调用从str里找出和reg匹配的第n个字符串。
var str="you can ,you no ,no akn nosss";
/*普通模式,调用第一个字符串*/
console.log(reg.exec(str));
/*全局模式的,第n次调用第n个字符串*/
var reg=/no/g;
console.log(reg.exec(str));
console.log(reg.exec(str));
console.log(reg.exec(str));
console.log(reg.exec(str));
console.log(reg.exec(str));

判断str中是否包含与reg匹配的字符串。
reg.test(str);
str.replace(reg,"字符串");
将str中与reg匹配的所有字符串都替换目标。
console.log(str.replace(reg,"o"));
//字符串是不可变的,修改字符串的方法,并没有改变原字符串,而是生成了新字符串
str.match(reg)
从str中找出包含与reg匹配的字串;
console.log(str.match(reg));
str.search(reg);
从str中找出与reg匹配的第一个子串的索引;
console.log(str.search(reg));


Function对象

function 定义函数
Function 对象
js的函数没有重载,调用函数名一样的,无论传入多少函数,调用同一个函数,默认当成一个数组对象(arguments)传入,需要啥调用啥。没有收到实参的参数值和undefined。

function sum(){var s=0;if(arguments.length>0){for(var i=0;i<arguments.length;i++){s+=arguments[i];     }       } return s;
}
var a=new Function ("x","y","return(x+y);");

JS外部对象

  • 外部对象就是浏览器提供的内部的API。
  • 这些对象由浏览器开发者设计并开发。
  • 这些对象分为2个部分,BOW包含了DOM

BOM模型

浏览器整体是一个对象

- window对象

window对象对应着浏览器窗口本身。window对象是BOM的顶层对象(核心对象),所有的对象都是通过它延伸出来的,也可以说为window的子对象。
window对象表示浏览器目前正在打开的窗口,为全局对象,直接后代无需加window前缀,但是document对象的后代需要加上document前缀。

//弹出框
function f1(){alert("1");
}
//确认框
function f2(){var v=confirm("nnn");console.log(v);
}
//输入框
function f3(){var a=prompt("aaa");console.log(a);
}

定时器
周期性定时器(隔一定时间,执行,反复执行,达到停止条件停止)
function f4(){var a=3;//启动定时器,返回定时器id,用来停止定时器var id=setInterval(function (){console.log(a--);if (!a){clearInterval(id);console.log("heihei");}},1000)//1s//启动定时器相当于启动了一个支线程,当前方法f4 相当于主线程,2个线程并发执行,不互相等待,因此主线程在启动完该线程立刻向下执行,而支线程却需要在1s后执行。console.log("afa");
}
一次性计时器(推迟一定时间执行一次函数,执行后自动停止,或者手动停止。)
var id;
function  f5(){if(id){return;    }//启动定时器,若想在未执行定时器之前停止,需要使用id。id=setTimeout(function (){console.log("a");},3000);//推迟3s
}
function f6(){//若定时器已经执行,则取消无效,若定时器还未执行,则可以取消;if(id){clearTimeout(id);id=null;}}

- location对象

location对象,提供了与当前窗口中加载的文档有关的信息,还能提供一定的导航的功能。

function b(){var b=confirm("likai?");if (b){location.href="http://www.baidu.com";}
}//跳转至百度。
function a(){location.reload();
}//刷新
history对象
function d(){history.forward();//前进//history.back();后退。
}
screen对象
function c(){console.log(screen.width);console.log(screen.height);console.log(screen.availHeight);console.log(screen.availWidth);
}
navigator对象
function f(){console.log(navigator.userAgent);
}


DOM(文档对象模型)

DOM树
HTML是根节点,,<>


浏览器获取网页后将其解析为对象,对网页进行读写操作,只需读写对象即可,DOM树,树结构中每级对象为节点。节点有着不同的分类。

DOM的方法(对于节点的操作)

读写节点名称。类型,不能进行修改

//读写节点名称/类型,不能更改
window.onload = function(){
var p=document.getElementById('a');
console.log(p.nodeName);
console.log(p.nodeType);
}
<p id="a"><b>节点</b>名称</p>


读写节点内容

//读写节点的内容(双标签中间的文本为内容<a>heihei</a>)
/*innerHTML(会将子标签都输出来)
//innerText(忽略子标签,不把标签当标签来用)*/
window.onload = function(){
console.log(p.innerHTML);
p.innerHTML="<b>读取</b>节点";
var b=document.getElementById('b');
console.log(b.innerText);
b.innerText="<u>读写</u>节点";
}
<p id="a"><b>节点</b>名称</p>
<p id="b"><b>hei</b>jie</p>

读写节点的值

//读写节点的值,表单控件中的数据为值,只有如下表单控件才有值,input(9个),select,textarea
window.onload = function(){var b1=document.getElementById("b1");console.log(b1.value);b1.value="c";}<p><input type="button" value="值" id="b1">
</p>

读写节点的属性

  • 通过方法读写属性
//通过方法读写属性
window.onload = function(){var img=document.getElementById("test");console.log(img.getAttribute("src"));//属性路径img.setAttribute("src","../images/3.png");//改属性路径img.removeAttribute("src");//删除
}
<p><img src="../images/4.png" id="test"></p>
  • 通过标准属性名读写属性

class,id,style

window.onload = function(){
var h= document.getElementById("h");
console.log(h.style.color);
h.style.color="blue";
}
<p id=“h” style="color:blue;">标准属性</p>
  • 通过不标准属性名读写属性(高版本浏览器可兼容)。
    a.herf img.color.

查询节点

  1. 根据id查询节点
var input=document.getElementById("num");
  1. 根据标签查询节点
var imgs=document.getElementsByTagName();//获取所有图片
  1. 根据层次查询节点
var c=document.getElementById("c");
查询父亲
var ul=c.parentNode;
console.log(ul);
查询孩子(包含空格)
console.log(ul.childNodes);
查询孩子(不包含空格)var imgs=ul.getElementsByTagName("img");查询兄弟//节点.父亲.孩子[i]
var b=c.parentNode.getElementsByTagName("li")[2];

根据name查询节点
一般查询用于查询一组单选或者多选

var name=document.getElementsByName("sex");
console.log(name);

增加节点

//创建节点
var li=document.createElement("li");
//设置ul的内容
li.innerHTML="G";
//将li 追加到ul下,在网页中显示出来
var ul=document.getElementById("city");
ul.appendChild(li);



可以直接在控制台写入,也可以写入一个选择器,调用js函数。

插入节点

//创建节点,并写入内容
var li=document.createElement("li");
li.innerHTML="T";
//获取该节点的父亲和弟弟
var ul=document.getElementById("a");
var c=document.getElementById("c");
//把他插入到父亲的弟弟前
ul.insertBefore(li,c);




删除节点

//获取要删节点的父亲
var ul=document.getElementById("a");
//获取要删除的元素
var c=document.getElementById("c");
//删除元素
ul.removeChild(c);



在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/745625.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【打工日常】docker部署快速开发海报工具

一、fastposter海报生成器介绍 fastposter 是一款海报生成器&#xff0c;它能够让您快速、轻松地创建各种类型的海报。 只需上传一张背景图&#xff0c;然后在需要的位置添加文字、图片、二维 、头像等组件。点击生成代码按钮&#xff0c;直接获取各种语言 SDK 的调用代码&…

智能物流新纪元:分布式I/O模块重塑仓储自动化

随着工业4.0概念的深入人心&#xff0c;物流行业正在经历前所未有的变革。在这个过程中&#xff0c;物流企业必须积极走向工业自动化、智能化&#xff0c;进而提高物流效率&#xff0c;降低物流成本&#xff0c;以便更好地满足客户和市场的需求。智能物流、仓库自动化已然是趋势…

Java实现PDF文字内容识别,结合OCR实现PDF图片实现

使用插件&#xff1a;UMI-OCR、PDFBOX 实现思路&#xff1a;通过PDFBOX识别PDF文字&#xff0c;如果是图片&#xff0c;则识别不出来&#xff0c;再调用OCR进行识别返回文字&#xff1b;OCR识别较慢&#xff0c;长图识别不出来&#xff0c;目前HTTP方式只支持图片格式&#xf…

【设计模式】二、UML 类图与面向对象设计原则 之 UML概述

二、UML 类图与面向对象设计原则 &#xff08;一&#xff09;UML 类图 UML 概述类与类的UML图示类之间的关系 &#xff08;二&#xff09;面向对象设计原则 单一职责原则&#xff08;Single Responsibility Principle, SRP&#xff09;开闭原则&#xff08;Open-Closed Princip…

雅特力车规级MCU-AT32A403A开发板评测 06 GC9A01 SPI-LCD 1.28圆形屏幕

雅特力车规级MCU-AT32A403A开发板评测 06 GC9A01 SPI-LCD 1.28圆形屏幕 硬件平台 AT32A403A Board开发板 1.28寸圆形彩色TFT显示屏高清IPS 模块240X240 SPI接口GC9A01 产品介绍 推荐一个屏幕资料参考网站 http://www.lcdwiki.com/1.28inch_IPS_Module 1.28寸圆形IPS彩屏&…

C语言——动态内存分配

前言&#xff1a;通过前面的学习&#xff0c;我们知道C语言中在内存中开辟空间的方法有&#xff1a;变量和数组。既然拥有了开辟空间的方法&#xff0c;我们为什么还要学习动态内存分配呢&#xff1f; int val 20; //在内存中开辟四个字节的空间 int arr[10] { 0 }; //在内…

【金三银四】掌趣科技24.3.7 H项目 服务端开发笔试题

考试题型&#xff1a; 不定项选择题 10 道 &#xff0c; 填空题 10 道 &#xff0c; 问答题 2 道 &#xff0c; 编程题 4 道 目录 不定项选择题 10 道填空题 10 道问答题 2 道编程题 4 道 不定项选择题 10 道 在TCP协议中&#xff0c;发送方的窗口大小是由两个关键因素共同决定…

鸿蒙 Harmony 初体验

前言 看现在网上传得沸沸扬扬的鸿蒙&#xff0c;打算弄个 hello world 玩一下, 不然就跟不上时代的发展了 环境安装 我的环境 Windows 11 家庭中文版HarmonyOS SDK (API 9)DevEco Studio (3.1.1 Release)Node.js (16.19.1) 开发IDE下载 官方下载链接 配置 nodejs 这里帮…

Opencascade基础教程(9):切换视图

1、切换视图 1、1 增加视图切换按钮&#xff0c;并添加消息响应函数。 void COCCDemoView::OnButtonFrontview() {//前视图m_View->SetProj(V3d_Yneg);m_View->FitAll(); }void COCCDemoView::OnButtonRearview() {//后视图m_View->SetProj(V3d_Ypos);m_View->Fit…

【华为Datacom数通认证】HCIA-HCIP-HCIE

华为认证课程概述 华为认证是华为技术有限公司(简称"华为")基于"平台生态"战略&#xff0c;围绕"云-管-端"协同的新ICT技术架构&#xff0c;打造的业界覆盖ICT领域最广的认证体系&#xff0c;包含"ICT技术架构认证"、"ICT开发者…

学习JAVA的二十二天(基础)

目录 网络编程 三要素&#xff1a; IP InetAddress类 端口号 协议 UDP协议 TCP协议 前言&#xff1a;学习JAVA的第二十一天&#xff08;基础&#xff09;-CSDN博客 网络编程 在网络通信协议下&#xff0c;不同计算机上运行的程序,进行的数据传输。 三要素&#xff1a;…

installation of package ‘RDocumentation’ had non-zero exit status

installation of package ‘RDocumentation’ had non-zero exit status Warning in install.packages :installation of package ‘httr’ had non-zero exit status Warning in install.packages :installation of package ‘openssl’ had non-zero exit status 由于项目需…

蓝桥杯(1):python排序

1 基础 1.1 输出 1.1.1 去掉输出的空格 print("Hello","World",123,sep"") print("hello",world,123,sep) print(hello,world,123) #输出结果 #HelloWorld123 #helloworld123 #hello world 123 1.1.2 以不同的方式结尾 print(&quo…

Ubuntu Flask 运行 gunicorn+Nginx 部署

linux Ubuntu 下运行python 程序出现killed 原因&#xff1a;CPU或内存限制&#xff1a;在华为云上&#xff0c;你可能有CPU或内存使用的限制。例如&#xff0c;如果你使用的是一个固定大小的实例&#xff0c;那么超过该实例的CPU或内存限制可能会导致进程被杀死。 参考&am…

Python Web开发记录 Day10:Django part4 靓号管理与优化

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、数据库准备2、靓号列表3、新建靓号4、编辑靓…

Vue手写模拟步骤条

效果图&#xff1a; 如果要使用element的步骤条就需要强行修改样式&#xff0c;参考之前的那篇步骤条。这里我采用手写div 代码&#xff1a; 思路是给最外层的div一个左边框&#xff0c;给里面的step-item设置左边框为图片&#xff0c;通过定位来移动。 <div class"m…

Canal实现mysql与缓存同步

什么是Canal Canal是阿里巴巴旗下的一款开源项目, 基于java开发. Canal是基于mysql的主从同步来实现的. github地址: https://github.com/alibaba/canal Canal把自己伪装成MySQL的一个slave节点, 从而监听master的binary log变化. 再把得到的变化信息通知给Canal的客户端, 进而…

个人简历主页搭建系列-02:github 仓库作为联系方式

这篇文章暂时没有开始正式搭建网站。首先是最重要的注意事项&#xff1a;隐私。 真实姓名如果大家自己不介意的话其实我觉得还好&#xff0c;现在在互联网上想扒个姓名挺简单的&#xff0c;而且很多人都实名上网hh&#xff08;比如我的几位田径队学弟笑&#xff09;。 电话&a…

小程序学习3 goods-card

pages/home/home home.wxml <goods-listwr-class"goods-list-container"goodsList"{{goodsList}}"bind:click"goodListClickHandle"bind:addcart"goodListAddCartHandle"/> <goods-list>是一个自定义组件&#xff0c;它具…

[抽象]工厂模式([Abstract] Factory)——创建型模式

[抽象]工厂模式——创建型模式 什么是抽象工厂&#xff1f; 抽象工厂模式是一种创建型设计模式&#xff0c;让你能够保证在客户端程序中创建一系列有依赖的对象组时&#xff0c;无需关心这些对象的类型。 具体来说&#xff1a; 对象的创建与使用分离&#xff1a; 抽象工厂模…