一、描述
Symbols是JavaScript在es6版本新引入的一種基本數據類型,其中每個從Symbol()返回的symbol值都是唯一的。
二、基本用法
- 給user對象添加一個唯一的key
const id = Symbol('id')
let user = {
value: '999',
id: '001',
[id]: 1001
}
console.log(user) // {value: "999", id: 1, Symbol(id): 1001}
console.log(user[id]) // 1001
symbol的值不能重複,但是可以修改
// 接上之前的代碼
user[id] = 2002
console.log(user[id]) // 2002
三、Symbol 註冊表
- Symbol()在每次使用時返回的symbol值都是唯一的
- Symbol.for() 方法創建的的 symbol 會被放入一個全局 symbol 註冊表中
- Symbol.keyFor()需傳入一個Symbol對象,返回該對象的全局註冊的Symbol值
Symbol.for("bar") === Symbol.for("bar"); // true
Symbol("bar") === Symbol("bar"); // false
const sym = Symbol.for("mario")
Symbol.keyFor(sym) // mario
const id = Symbol('id')
Symbol.keyFor(id) // undefined