本文共 1392 字,大约阅读时间需要 4 分钟。
1,2,3
es6中的解构赋值,前面的赋值时默认值;后面的赋值会改变前面所附的默认值;当后面所赋值为undefined时,变量为默认值。
let list = document.getElementById("list");let lis = list.querySelectorAll('li'); (1) //let lis = list.getElementsByTagName('li'); (2)list.replaceChild(lis[2],lis[1]); (3) list.insertBefore(lis[1],list.children[2]); (4)// list.appendChild(lis[1]) (5)//console.log(lis[1]); (6)
// 百度,腾讯,阿里
// (3)执行后: 百度,腾讯
// (4)执行时,lis[1]是阿里, list.children是动态获取的,此时获取到的children[2]是null(insert a before b),这时候insertBofore的第二个参数是null,默认将a插入到最后,相当于(5)
(1)的querySelectorAll是静态的,即 li ,1,2,3内容是固定的;百度,阿里,腾讯
(2)与(1)不同,是动态获取的,注释(1),执行(2),结果是:百度,阿里;此时找不到list.children[2],不执行(4)
var name = 'kaivon';(function (){ if(typeof name === 'undefined'){ var name = 'chen'; console.log(name); }else{ console.log(name); }})();
立即执行函数有作用域, 和函数一样有自己的局部预编译过程
最后一个var 没有意义,不执行。
if(!('a' in window)){ var a = 1;}console.log(a);
val变量与val属性不一样,obj中的val是属性,log的val是变量; 所以this指向的obj内部是不包含val变量的,只包含val属性。在obj的外层寻找val变量。
var name = 'kaivon';var object = { name: 'chen', getNameFunc: function(){ return function(){ return this.name; } }}console.log(object.getNameFunc()());
//kaivon
非直接调用,this指向window,单独return了一个函数,单独执行。
//chen
// this被保存,并且被return形成闭包,指向object;
转载地址:http://cgtzi.baihongyu.com/