Symbol 是JavaScript的原始数据类型,Symbol实例是唯一且不可改变的. 在其他编程语言中 symbol也被称为原子(atoms).
在JavaScript中, Symbol 是 基本数据类型 的一种,Symbol
对象是 Symbol原始值的封装 。
Symbol 类型是 ECMAScript 6 (es6) 中新添加的特性,在ECMAScript 5中没有对应的类型。
Symbol("foo") !== Symbol("foo")
const foo = Symbol()
const bar = Symbol()
typeof foo === "symbol"
typeof bar === "symbol"
let obj = {}
obj[foo] = "foo"
obj[bar] = "bar"
JSON.stringify(obj) // {}
Object.keys(obj) // []
Object.getOwnPropertyNames(obj) // []
Object.getOwnPropertySymbols(obj) // [ foo, bar ]