又看es6...

2018-02-26  本文已影响0人  shanshanfei

1.for循环的循环变量区和内容区是2个作用域

for(let i=0;i<10;i++){
    let i = 'abc';
    console.log(i);//abc  此处的i与循环体中的i是2个作用域
}

2.let+const

3.块级作用域
4.Object.freeze({}) 冻结某个对象,该对象不能再添加、修改属性
5.解构赋值:比较有用的就是对象、数组+函数参数的结构赋值

Object.is(a,b) 用来比较两个值严格相等(类似===)不会做类型转换,但是 :
-0 === +0;//true
Object.is(-0, +0);//false
NaN === NaN;//false
Object.is(NaN, NaN) // true


让某个对象成为另外一个对象的原型,方法有:
a. es5的方法 var obj = Object.create(prototypeObj);
b. es6的方法 Object.setPrototype(obj, prototypeObj);
c. obj.prototype = prototypeObj;

11.Iterator接口

调用Iterator接口的地方:

    数组、Set数据的结构赋值
    扩展运算符...
    for...of  Array.from()等
    yield * [2, 3, 4]
  1. Set & Map
const a = new Set([1, 2]);
a.size
a.add(2);
a.delete(2);
a.has(4);
a.clear();
// 去除数组的重复成员
[...new Set(array)]
[...new Set('ababbc')].join('')
// "abc"

// Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys方法和values方法的行为完全一致
// WeakSet 与Set类似,但是成员只能是对象。
上一篇下一篇

猜你喜欢

热点阅读