JavaScript学习笔记(第四部分)总共四部分

9 事件

9.1 事件对象

当响应函数被调用时,浏览器每次都会将一个事件对象作为实参传递进响应函数中,这个事件对象中封装了当前事件的相关信息,比如:鼠标的坐标,键盘的按键,鼠标的按键,滚轮的方向。。

可以在响应函数中定义一个形参,来使用事件对象,但是在IE8以下浏览器中事件对象没有做完实参传递,而是作为window对象的属性保存

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#box1{border: 1px solid black;width: 300px;height: 50px;margin-bottom: 10px;    }#box2{border: 1px solid black;width: 300px;height: 20px;}</style><script>window.onload =function(){var box1 = document.getElementById("box1");var box2 = document.getElementById("box2");box1.onmousemove = function(event){event  = event || window.event;var x = event.clientX;var y = event.clientY;box2.innerHTML ="x = "+x + " , y = "+y;};};  </script>
</head>
<body><div id="box1"></div><div id="box2"></div>
</body>
</html>
//practice
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#box1{width: 90px;height: 100px;background-color: rebeccapurple;position: absolute;}</style><script>window.onload = function(){var box1 = document.getElementById("box1");document.onmousemove = function(event){event = event || window.event;var st = document.body.scrollTop || document.documentElement.scrollTop;var sl = document.body.scrollLeft || document.documentElement.scrollLeft;var left = event.clientX;var top = event.clientY;//设置div的偏移量box1.style.left = left + sl + "px";box1.style.top = top + st + "px";}}</script>
</head>
<body><div id="box1"></div>
</body>
</html>

获取到鼠标的坐标
clientX和clientY
用于获取鼠标在当前的可见窗口的坐标
div的偏移量,是相对于整个页面的

pageX和pageY 可以获取鼠标相对于当前页面的坐标
但是这个两个属性在IE8中不支持,所以如果需要兼容IE8,则不要使用
var left = event.clientX;
var top = event.clientY;

9.2 事件的冒泡(Bubble)

事件的冒泡指的是事件向上传导,当后代元素上的事件被触发时,将会导致其祖先元素上的同类事件也会触发。
事件的冒泡大部分情况下都是有益的,如果需要取消冒泡,则需要使用事件对象来取消

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style type="text/css">#box1{width: 200px;height: 200px;background-color: yellowgreen;}#s1{background-color: yellow;}</style><script type="text/javascript">window.onload = function(){var s1 = document.getElementById("s1");s1.onclick = function(event){event = event || window.event;alert("我是span的单击响应函数");event.cancelBubble = true;};//为box1绑定一个单击响应函数var box1 = document.getElementById("box1");box1.onclick = function(event){event = event || window.event;alert("我是div的单击响应函数");event.cancelBubble = true;};//为body绑定一个单击响应函数document.body.onclick = function(){alert("我是body的单击响应函数");};};</script></head><body><div id="box1">我是box1<span id="s1">我是span</span></div></body>
</html>

可以将事件对象的cancelBubble设置为true,即可取消冒泡

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style type="text/css">#box1{width: 100px;height: 100px;background-color: red;/** 开启box1的绝对定位*/position: absolute;}</style><script type="text/javascript">window.onload = function(){var box1 = document.getElementById("box1");//绑定鼠标移动事件document.onmousemove = function(event){event = event || window.event;var st = document.body.scrollTop || document.documentElement.scrollTop;var sl = document.body.scrollLeft || document.documentElement.scrollLeft;var left = event.clientX;var top = event.clientY;//设置div的偏移量box1.style.left = left + sl + "px";box1.style.top = top + st + "px";};var box2 = document.getElementById("box2");box2.onmousemove = function(event){event = event || window.event;event.cancelBubble = true;  //冒泡是取消的}; };</script></head><body style="height: 1000px;width: 2000px;"><div id="box2" style="width: 500px; height: 500px; background-color: #bfa;"></div><div id="box1"></div></body>
</html>

9.3 事件的委派

指将事件统一绑定给元素的共同的祖先元素,这样当后代元素上的事件触发时,会一直冒泡到祖先元素,从而通过祖先元素的响应函数来处理事件。

事件委派是利用了冒泡,通过委派可以减少事件绑定的次数,提高程序的性能

我们希望,只绑定一次事件,即可应用到多个的元素上,即使元素是后添加的
我们可以尝试将其绑定给元素的共同的祖先元素

target : event中的target表示的触发事件的对象

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>window.onload = function(){var u1 = document.getElementById("u1");var btn01 = document.getElementById("btn01");btn01.onclick = function(){//创建一个livar li = document.createElement("li");li.innerHTML = "<a href='javascript:;' class='link'>新建的超链接</a>";//将li添加到ul中u1.appendChild(li);};var allA = document.getElementsByTagName("a");u1.onclick = function(event){event = event || window.event;if(event.target.className == "link"){alert("我是ul的单击响应函数");}};}</script>
</head>
<body><button id="btn01">添加超链接</button><ul id="u1" style="background-color: #bfa;"><li><p>我是p元素</p></li><li><a href="javascript:;" class="link">超链接一</a></li><li><a href="javascript:;" class="link">超链接二</a></li><li><a href="javascript:;" class="link">超链接三</a></li></ul></body>
</html>

9.4 事件的绑定

addEventListener()
通过这个方法也可以为元素绑定响应函数
参数:
1.事件的字符串,不要on
2.回调函数,当事件触发时该函数会被调用
3.是否在捕获阶段触发事件,需要一个布尔值,一般都传false

使用addEventListener()可以同时为一个元素的相同事件同时绑定多个响应函数,
这样当事件被触发时,响应函数将会按照函数的绑定顺序执行

这个方法不支持IE8及以下的浏览器

attachEvent()

在IE8中可以使用attachEvent()来绑定事件
参数:
1.事件的字符串,要on
2.回调函数

这个方法也可以同时为一个事件绑定多个处理函数,
不同的是它是后绑定先执行,执行顺序和addEventListener()相反

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>window.onload = function(){function bind(obj , eventStr , callback){if(obj.addEventListener){//大部分浏览器兼容的方式obj.addEventListener(eventStr , callback , false);}else{/** this是谁由调用方式决定* callback.call(obj)*///IE8及以下obj.attachEvent("on"+eventStr , function(){//在匿名函数中调用回调函数callback.call(obj);});}};var btn01 = document.getElementById("btn01");bind(btn01 , "click" , function(){alert(this);});};</script>
</head>
<body><button id="btn01">点我一下</button>
</body>
</html>

9.5 事件的传播

关于事件的传播网景公司和微软公司有不同的理解
微软公司认为事件应该是由内向外传播,也就是当事件触发时,应该先触发当前元素上的事件,
然后再向当前元素的祖先元素上传播,也就说事件应该在冒泡阶段执行。
网景公司认为事件应该是由外向内传播的,也就是当前事件触发时,应该先触发当前元素的最外层的祖先元素的事件,
然后在向内传播给后代元素
W3C综合了两个公司的方案,将事件传播分成了三个阶段
1.捕获阶段
在捕获阶段时从最外层的祖先元素,向目标元素进行事件的捕获,但是默认此时不会触发事件
2.目标阶段
事件捕获到目标元素,捕获结束开始在目标元素上触发事件
3.冒泡阶段
事件从目标元素向他的祖先元素传递,依次触发祖先元素上的事件

如果希望在捕获阶段就触发事件,可以将addEventListener()的第三个参数设置为true
一般情况下我们不会希望在捕获阶段触发事件,所以这个参数一般都是false

IE8及以下的浏览器中没有捕获阶段

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#box1{width: 300px;height: 300px;background-color: yellowgreen;}#box2{width: 200px;height: 200px;background-color: yellow;}#box3{width: 150px;height: 150px;background-color: skyblue;}</style><script>window.onload = function(){var box1 = document.getElementById("box1");var box2 = document.getElementById("box2");var box3 = document.getElementById("box3");bind(box1,"click",function(){alert("我是box1的响应函数")});bind(box2,"click",function(){alert("我是box2的响应函数")});bind(box3,"click",function(){alert("我是box3的响应函数")});function bind(obj , eventStr , callback){if(obj.addEventListener){//大部分浏览器兼容的方式obj.addEventListener(eventStr , callback , true);}else{obj.attachEvent("on"+eventStr , function(){//在匿名函数中调用回调函数callback.call(obj);});}}};</script>
</head>
<body><div id="box1"><div id="box2"><div id="box3"></div></div></div></body>
</html>

9.6 常用事件

9.6.1 鼠标事件

拖拽事件

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#box1{width: 100px;height: 100px;background-color: red;position: absolute;}#box2{width: 100px;height: 100px;background-color: yellow;position: absolute;left: 200px;top: 200px;}</style><script>window.onload = function(){/** 拖拽box1元素*  - 拖拽的流程*        1.当鼠标在被拖拽元素上按下时,开始拖拽  onmousedown*       2.当鼠标移动时被拖拽元素跟随鼠标移动 onmousemove*        3.当鼠标松开时,被拖拽元素固定在当前位置    onmouseup*///获取box1var box1 = document.getElementById("box1");var box2 = document.getElementById("box2");var img1 = document.getElementById("img1");drag(box1);drag(box2);drag(img1);};/** 提取一个专门用来设置拖拽的函数* 参数:开启拖拽的元素*/function drag(obj){//当鼠标在被拖拽元素上按下时,开始拖拽  onmousedownobj.onmousedown = function(event){obj.setCapture && obj.setCapture();event = event || window.event;var ol = event.clientX - obj.offsetLeft;var ot = event.clientY - obj.offsetTop;document.onmousemove = function(event){event = event || window.event;var left = event.clientX - ol;var top = event.clientY - ot;//修改box1的位置obj.style.left = left+"px";obj.style.top = top+"px";};//为document绑定一个鼠标松开事件document.onmouseup = function(){//当鼠标松开时,被拖拽元素固定在当前位置    onmouseup//取消document的onmousemove事件document.onmousemove = null;//取消document的onmouseup事件document.onmouseup = null;//当鼠标松开时,取消对事件的捕获obj.releaseCapture && obj.releaseCapture();};                    return false;};}</script>
</head>
<body>我是一段文字<div id="box1"></div><div id="box2"></div><img src="img/an.jpg" id="img1" style="position: absolute;"/>
</body>
</html>

滚轮事件:

onwheel都支持

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#box1{width: 100px;height: 100px;background-color: red;}</style><script>window.onload = function(){var box1 = document.getElementById("box1");box1.onmousewheel = function(event){event = event || window.event;if(event.wheelDelta > 0 || event.detail < 0){ //event.detail ie8的属性值//向上滚,box1变短box1.style.height = box1.clientHeight - 10 + "px";}else{//向下滚,box1变长box1.style.height = box1.clientHeight + 10 + "px";}/** 使用addEventListener()方法绑定响应函数,取消默认行为时不能使用return false* 需要使用event来取消默认行为event.preventDefault();* 但是IE8不支持event.preventDefault();这个玩意,如果直接调用会报错*/event.preventDefault && event.preventDefault();return false; };//为火狐绑定滚轮事件bind(box1,"DOMMouseScroll",box1.onmousewheel);   };function bind(obj , eventStr , callback){if(obj.addEventListener){obj.addEventListener(eventStr , callback , false);}else{obj.attachEvent("on"+eventStr , function(){callback.call(obj);});}}</script>
</head>
<body style="height: 2000px;"><div id="box1"></div></body>
</html>

practice

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#box{width: 100px;height: 100px;background-color: red;position: absolute;}</style><script>window.onload = function(){document.onkeydown = function(event){event = event || window.event;var speed = 10 ;if(event.ctrlKey)  {speed = 20;}console.log(event.keyCode);switch(event.keyCode){case 37:box.style.left = box.offsetLeft - speed + "px";break;case 39:box.style.left = box.offsetLeft + speed + "px";break;case 38:box.style.top = box.offsetTop - speed + "px";break;case 40:box.style.top = box.offsetTop + speed + "px";break;}     }}</script>
</head>
<body><div id="box"></div>
</body>
</html>
9.6.2 键盘事件

键盘事件:
onkeydown
按键被按下
对于onkeydown来说如果一直按着某个按键不松手,则事件会一直触发
当onkeydown连续触发时,第一次和第二次之间会间隔稍微长一点,其他的会非常的快,这种设计是为了防止误操作的发生。
onkeyup
按键被松开

键盘事件一般都会绑定给一些可以获取到焦点的对象或者是document

keyCode

可以通过keyCode来获取按键的编码
通过它可以判断哪个按键被按下
除了keyCode,事件对象中还提供了几个属性
altKey
ctrlKey
shiftKey
这个三个用来判断alt ctrl 和 shift是否被按下
如果按下则返回true,否则返回false

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>window.onload = function(){document.onkeydown =function(event){event = event || window.event;if(event.keyCode == 89 && event.ctrlKey){alert("ctrl + y 同时被按下");}}var input = document.getElementsByTagName("input")[0];input.onkeydown = function(event){event = event || window.event;if(event.keyCode >=48 && event.keyCode<= 57){return false;  //不能舒服数字}}}</script>
</head>
<body><input type="text" id="inner">
</body>
</html>

10 BOM

浏览器对象模型(browser object model)
BOM可以使我们通过JS来操作浏览器
在BOM中为我们提供了一组对象,用来完成对浏览器的操作
BOM对象
Window: 代表的是整个浏览器的窗口,同时window也是网页中的全局对象
Navigator:代表的当前浏览器的信息,通过该对象可以来识别不同的浏览器
Location:代表当前浏览器的地址栏信息,通过Location可以获取地址栏信息,或者操作浏览器跳转页面
History:代表浏览器的历史记录,可以通过该对象来操作浏览器的历史记录
由于隐私原因,该对象不能获取到具体的历史记录,只能操作浏览器向前或向后翻页
而且该操作只在当次访问时有效
Screen:代表用户的屏幕的信息,通过该对象可以获取到用户的显示器的相关的信息

这些BOM对象在浏览器中都是作为window对象的属性保存的,
可以通过window对象来使用,也可以直接使用

10.1Navigator

代表的当前浏览器的信息,通过该对象可以来识别不同的浏览器
由于历史原因,Navigator对象中的大部分属性都已经不能帮助我们识别浏览器了
一般我们只会使用userAgent来判断浏览器的信息,
userAgent是一个字符串,这个字符串中包含有用来描述浏览器信息的内容,
不同的浏览器会有不同的userAgent

火狐的userAgent
Mozilla5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko20100101 Firefox50.0Chrome的userAgent
Mozilla5.0 (Windows NT 6.1; Win64; x64) AppleWebKit537.36 (KHTML, like Gecko) Chrome52.0.2743.82 Safari537.36IE8
Mozilla4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)IE9
Mozilla5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)IE10
Mozilla5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)IE11
Mozilla5.0 (Windows NT 6.1; WOW64; Trident7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko
在IE11中已经将微软和IE相关的标识都已经去除了,所以我们基本已经不能通过UserAgent来识别一个浏览器是否是IE了
alert(navigator.appName);  var ua = navigator.userAgent;  console.log(ua);  if(firefoxi.test(ua)){
alert("你是火狐!!!");
}else if(chromei.test(ua)){
alert("你是Chrome");
}else if(msiei.test(ua)){
alert("你是IE浏览器~~~");
}else if("ActiveXObject" in window){
alert("你是IE11,枪毙了你~~~");
}

10.2 History

对象可以用来操作浏览器向前或向后翻页
length : 属性,可以获取到当成访问的链接数量
back() : 可以用来回退到上一个页面,作用和浏览器的回退按钮一样
forward() : 可以跳转下一个页面,作用和浏览器的前进按钮一样
go() :可以用来跳转到指定的页面
它需要一个整数作为参数
1: 表示向前跳转一个页面 相当于forward()
2: 表示向前跳转两个页面
-1: 表示向后跳转一个页面
-2: 表示向后跳转两个页面

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript">/** History*  - 对象可以用来操作浏览器向前或向后翻页*/window.onload = function(){//获取按钮对象var btn = document.getElementById("btn");btn.onclick = function(){alert(history.length);//可以获取到当成访问的链接数量history.back(); //可以用来回退到上一个页面,作用和浏览器的回退按钮一样history.forward(); //可以跳转下一个页面,作用和浏览器的前进按钮一样history.go(-2);//表示向后跳转两个页面};};</script></head><body><button id="btn">点我一下</button><h1>History</h1><a href="01.BOM.html">去BOM</a></body>
</html>

10.3 Location

该对象中封装了浏览器的地址栏的信息
如果直接打印location,则可以获取到地址栏的信息(当前页面的完整路径)
alert(location);
如果直接将location属性修改为一个完整的路径,或相对路径
则我们页面会自动跳转到该路径,并且会生成相应的历史记录

location = “http:www.baidu.com";
location = “01.BOM.html”;
assign()
用来跳转到其他的页面,作用和直接修改location一样

reload()
用于重新加载当前页面,作用和刷新按钮一样
如果在方法中传递一个true,作为参数,则会强制清空缓存刷新页面

location.reload(true);
replace()
可以使用一个新的页面替换当前页面,调用完毕也会跳转页面
不会生成历史记录,不能使用回退按钮回退

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript">/** Location*     - 该对象中封装了浏览器的地址栏的信息*/window.onload = function(){//获取按钮对象var btn = document.getElementById("btn");               btn.onclick = function(){alert(location);//获取到地址栏的信息(当前页面的完整路径)location = "http://www.baidu.com";//我们页面会自动跳转到该路径,并且会生成相应的历史记录location = "01.BOM.html";location.assign("http://www.baidu.com");//用来跳转到其他的页面,作用和直接修改location一样location.reload(true);//用于重新加载当前页面,作用和刷新按钮一样location.replace("01.BOM.html");//可以使用一个新的页面替换当前页面,调用完毕也会跳转页面 不会生成历史记录,不能使用回退按钮回退};};</script></head><body><button id="btn">点我一下</button><h1>Location</h1><input type="text" /><a href="01.BOM.html">去BOM</a></body>
</html>

10.4 window

10.4.1定时器

setInterval()
定时调用 : 可以将一个函数,每隔一段时间执行一次
参数:1.回调函数,该函数会每隔一段时间被调用一次 2.每次调用间隔的时间,单位是毫秒

返回值: 返回一个Number类型的数据
这个数字用来作为定时器的唯一标识
clearInterval()可以用来关闭一个定时器
方法中需要一个定时器的标识作为参数,这样将关闭标识对应的定时器

clearInterval()可以接收任意参数,
如果参数是一个有效的定时器的标识,则停止对应的定时器
如果参数不是一个有效的标识,则什么也不做

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>window.onload = function(){var h1 = document.getElementById("index");var num = 0;var timer = setInterval(function(){h1.innerText = num++;if(num == 1000){clearInterval(timer);} }, 100);};</script>
</head>
<body><h2 id="index"></h2></body>
</html>
10.4.2 延时调用

setTimeout

延时调用一个函数不马上执行,而是隔一段时间以后在执行,而且只会执行一次
延时调用和定时调用的区别,定时调用会执行多次,而延时调用只会执行一次
延时调用和定时调用实际上是可以互相代替的,在开发中可以根据自己需要去选择

clearTimeout(timer)

JavaScript学习笔记(第四部分)总共四部分(完结)相关推荐

  1. JavaScript学习笔记(第二部分)总共四部分

    JavaScript学习笔记(第二部分)总共四部分 4 对象(Object) 字符串String.数值Number.布尔值Boolean.空值Null.未定义Undefined是基本的数据类型,这些数 ...

  2. JavaScript学习笔记(四)(DOM)

    JavaScript学习笔记(四) DOM 一.DOM概述 二.元素对象 2.1 获取方式 (1).通过ID获取一个元素对象,如果没有返回null (2).通过`标签名`获取一组元素对象,,如果没有返 ...

  3. JavaScript学习笔记(四)---闭包、递归、柯里化函数、继承、深浅拷贝、设计模式

    JavaScript学习笔记(四)---闭包.递归.柯里化函数.继承.深浅拷贝.设计模式 1. 匿名函数的使用场景 2.自运行 3.闭包 3.1前提: 3.2闭包 4.函数对象的三种定义方式 5.th ...

  4. javascript学习笔记(第四章图片库--初步了解)

    javascript学习笔记(第四章图片库–初步了解) 通过前三章的学习我们已经对这个新的语言有了一个了解,js的语法基本和C语言一致,我们可以通过调用一些document对象中的函数来对实现一些很简 ...

  5. 【Python学习笔记—保姆版】第四章—关于Pandas、数据准备、数据处理、数据分析、数据可视化

    第四章 欢迎访问我搞事情的[知乎账号]:Coffee 以及我的[B站漫威剪辑账号]:VideosMan 若我的笔记对你有帮助,请用小小的手指,点一个大大的赞哦. #编译器使用的是sypder,其中&q ...

  6. JavaScript学习笔记02【基础——对象(Function、Array、Date、Math)】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  7. JavaScript学习笔记(六)--数组

    数组初始化 我们都知道,数组是用于保存多个值的集合,在数组中,值被称为元素,值可以是任意的数据类型.在Javascript中,创建数组通常有两种方式:字面量和构造函数. 字面量 数组的元素可以是任意的 ...

  8. JavaScript学习笔记:创建、添加与删除节点

    JavaScript学习笔记:创建.添加与删除节点 文章目录 JavaScript学习笔记:创建.添加与删除节点 一.DOM对象节点类型 二.创建节点 1.创建元素节点 2.创建文本节点 3.创建属性 ...

  9. JavaScript 学习笔记(第三天)

    JavaScript 学习笔记(第三天) 一.数组 1.1.数组的基础 1.2.数据类型分类 1.3.创建数组 1.3.1.字面量创建一个数组 1.3.2.内置构造函数创建数组 1.4.数组的基本操作 ...

最新文章

  1. vs2012与win7不兼容问题
  2. dataframe筛选数据根据某一个列的数据在另外的一个数组中
  3. AI:人工智能实践六大场景(金融信用违约、反欺诈模型、客户偏好洞察、智能推荐、精准营销、客户流失管理)及其对应常用机器学习算法经验总结(不断更新)
  4. dubbo启动服务启动报错.UnsatisfiedDependencyException: Error creating bean with name '***': Un
  5. dz论坛修改html编辑器,discuz二次开发更换百度ueditor编辑器
  6. windows睡眠(休眠)唤醒助手_Windows快速启动背后的功臣:休眠
  7. 基于Websocket草案10协议的升级及基于Netty的握手实现
  8. scrum回顾_133. 你最重要:2020版Scrum指南解读
  9. 使用分层网络模型的两个优点是什么_从零开始学网络|搞懂OSI参考模型和TCP/IP分层模型,看这篇文章就够了...
  10. java程序n体问题_2n皇后问题 (Java代码)详解
  11. fastdfs集群搭建_领课教育开源系统-FastDFS的安装和使用
  12. linux 跟踪运行的进程,使用 Linux 的 strace 命令跟踪/调试程序的常用选项
  13. Java中的ArrayList类和LinkedList
  14. 单源最短路(SPFA算法)
  15. centos安装7zip
  16. 新版UNITY游戏(IL2CPP类型)使用内嵌型机器翻译插件XUnity.AutoTranslator的食用方法
  17. 我想谈谈关于Android面试那些事,聪明人已经收藏了!
  18. HCNP学习笔记之OSPF邻接关系的建立和LSDB同步
  19. [C]C语言基本语句(5/7)→ 用scanf语句输入int, float, double, char型数据
  20. linux双网卡网桥转发,Linux网桥实现

热门文章

  1. HTML给网站加上悬浮音乐播放器-毅世纪资源
  2. Python学习-01(其实是Linus基础)
  3. 2021地理设计组二等奖:阜阳市区火灾消防时空格局分析及站点优化选址
  4. 代码规范、如何写出好代码
  5. 歌``大家``一起来``留下好歌共赏```
  6. 【Yii框架 一 】PHP框架,Yii概述
  7. html增加header,html怎么设置header
  8. 三个统一..........
  9. 有源汇有上下界最大流/最小流 配题(HDU 3157)
  10. 程序员的大国工匠精神