Symbol
symbol
是 ES 2015 引入的一个新的原始类型。 通过 Symbol
构造函数创建。
symbol
具有不可变性和唯一性。
- 唯一性示例:
let sym2 = Symbol("key");
let sym3 = Symbol("key");
sym2 == sym3 ; // false ,即使创建的 key 相同也不相等。 symbol 具有 唯一性.
-
symbol
对象 也可以像string
对象一样作为对象的属性 key.
let sym = Symbol();
let obj = {
[sym]: "value"
}
-
symbol
对象也可以与computed
属性声明来声明其他对象属性或类成员。
const getClassNameSymbol = Symbol();
class C{
[getClassNameSymbol](){
return "C";
}
}
- 内置的Symbol
参考 [Symbol] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol)
Iterators and Generators
An object is deemed iterable if it has an implementation for the Symbol.iterator
property.
for..of
语句可以通过遍历可迭代对象。
let arr = [1,"string", false];
for(let ele of arr){
}
for..of
VS for..in
for..in
是遍历指定对象的key
列表。
注意:如果如果要兼容 ES5 的话 for..of
只能用于数组类型。
网友评论