ES6引入了一种新的原始数据类型Symbol,是一种类似于字符串的数据类型,表示独一无二的值。
//创建
let s = Symbol();
let s1 = Symbol(“月亮”);
let s2 = Symbol(“月亮”);
let s3 = Symbol.for(“月亮”);
let s4 = Symbol.for(“月亮”);
这个时候s1和s2是不相等的,s3和s4是相等的。
USONB, you are so nubility. 7种数据类型。
- undefined
- string
- symbol
- object
- null
- number
- boolean
symbol给对象添加属性和方法,因为我们要扩展对象的时候,对象也许已经有了这个属性,但是我们在没有遍历的时候不知道,因此我们需要用Symbol来创建一个唯一的key。
let obj = {
up: 1,
down: 2
};
obj[Symbol("up")] = a;
ES6还提供了11个内置的Symbol值,来控制对象在特定场景下的表现。