Symbol

142 阅读1分钟

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值,来控制对象在特定场景下的表现。