ES6杂碎

1、let声明的变量没有变量提升;

2、const声明的变量:块级作用域内有效,存在暂时性死区,变量指向的那个内存地址不得改动;

3、...tail解构出来的是数组或空数组

let [head, ...tail] = [1, 2, 3, 4];
head //1
tail //[2, 3, 4]

4、Iterator(遍历器)是一种接口,作用:一是为各种数据结构,提供一个统一的、简便的访问接口,二是使得数据结构的成员能够按某种次序排列,三是ES6创造了一种新的遍历命令for...of循环,Iterator接口主要供for...of消费。

  在ES6中,有三类数据结构原生具备Iterator接口:数组某些类似数组的对象(例如:字符串)SetMap结构。

  默认调用Iterator接口的情况:

  *解构赋值

  *扩展运算符(...)

  *任何接受数组作为参数的场合

  只要某种数据结构具有Iterator接口,都可以采用数组形式的解构赋值

5、解构赋值,默认值生效的条件是,对象的属性值严格等于undefined

var {x = 3} = {x: undefined};
x //3  默认值生效

var {x = 3} = {x: null}; 
x //null   默认值不生效

猜你喜欢

转载自www.cnblogs.com/krystalcl/p/9562173.html
ES6