ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型(用typeof检测初出来的
数据类型为symbol
)
·
·
根本上防止属性名的冲突。这就是 ES6 引入Symbol的原因。
·
·
前六种数据类型
是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。
定义:
let syml = Symbol('a')
typeof syml // "symbol"
注意:
- symbol 不能new
- symbol()返回是一个唯一值,做一个key,定义一些唯一或者私有的一些东西
let a = Symbol('a')
console.log(typeof a)
let json = {
name: '小王',
age: 12,
[a]: '哈哈'
}
console.log(json) // {name:'小王',age:12,Symbol(a): "哈哈"}
console.log(json[a]) // 哈哈
- symbol是一个单独的数据类型,就叫symbol基本类型
- 如果symbol作为key,用for in 循环出不来
let a = Symbol('a')
let json = {
name: '小王',
age: 12,
[a]: '哈哈'
}
for (let key in json) {
console.log(key) // name age
}