symbol
es5 中对象属性名都是字符串 容易造成命名冲突,污染环境
- symbol 属性对应的值是唯一的,解决命名冲突
- symbol 值不能与其他的数据进行计算,包括同字符串拼串
- for in , for of 遍历时 不会遍历symbol属性
const symbol = Symbol()
const symbol2 = Symbol()
console.log(symbol, type of symbol)
console.log(symbol === symbol2) // symbol每次产生的值都是唯一的,缺点不知道标识,可以传
const symbol3 = Symbol(‘hahaha’)
列子
const p = {
[symbol]: '1',
[symbol2]: 222
}
console.log(symbol+1) // 不能计算
// symbol 属性不能被for in 遍历出来