Symbol
ES6里新增了一种单独的原始数据类型Symbol,它通过 Symbol函数生成。
Symbol函数前不能使用new命令,否则会报错。这是因为生成的 Symbol是一个原始类型的值,不是对象。
Symbol的最大特点,就是每一个 Symbol都是不相等的,保证产生一个独一无二的值.
var mySymbol = Symbol('Test')
console.log(typeof mySymbol); //"symbol"
可以当做一个唯一的key,如下例:
let json={
a:'apple',
b:'banana',
[symbol]:'aaaa'
}
console.log(json['b']); //banana
console.log(json[symbol]); //aaaa
注意,如果用symbol作为key,那么用for…in循环就会出不来,看下例:
let json={
a:'apple',
b:'banana',
[symbol]:'aaaa'
}
for(var key in json){
console.log(key); // a b
}
generator函数
ES6新增的迭代器函数generator可以配合for…of使用,注意此时不会遍历return后的东西,看下例:
generator函数还能配合用于解构赋值:
generator函数还能配合用于扩展运算符:
generator函数还能配合用于Array.from( )