2021-01-19补1.10-1.18

1.9 过滤数组Set(has)和includes

 

 

 

1.10解构赋值

1,2,3

es6中的解构赋值,前面的赋值时默认值;后面的赋值会改变前面所附的默认值;当后面所赋值为undefined时,变量为默认值。

 

1.11 dom操作

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)

 

1.12 预编译(局部与全局)

 

 

1.13 预编译与立即执行函数作用域

var name = 'kaivon';
(function (){
  if(typeof name === 'undefined'){
    var name = 'chen';
    console.log(name);
  }else{
    console.log(name);
  }
})();

立即执行函数有作用域, 和函数一样有自己的局部预编译过程

 

 

1.14

最后一个var 没有意义,不执行。

 

1.15 预编译

if(!('a' in window)){
  var a = 1;
}
console.log(a);

 

 

1.16

val变量与val属性不一样,obj中的val是属性,log的val是变量; 所以this指向的obj内部是不包含val变量的,只包含val属性。在obj的外层寻找val变量。

 

1.17


var name = 'kaivon';
var object = {
  name: 'chen',
  getNameFunc: function(){
    return function(){
      return this.name;
    }
  }
}
console.log(object.getNameFunc()());

//kaivon

非直接调用,this指向window,单独return了一个函数,单独执行。

 

 

1.19

//chen 

// this被保存,并且被return形成闭包,指向object;

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值