Symbol的概念
ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型,前六种是:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)
{
//声明
let a1=Symbol();
let a2=Symbol();
console.log(a1===a2);
//false
let a3=Symbol.for('a3')
let a4=Symbol.for('a3')
console.log(a3===a4)
//true
}
{
let a1=Symbol.for('abc');
let obj={
[a1]:'123',
"abc":"345",
"c":"456"
}
console.log(obj);
//{abc: "345", c: "456", Symbol(abc): "123"} 注:for in和let of拿不到Symbol定义的key值
//可以通过Object.getOwnPropertySymbols(obj)得到
Reflect.ownKeys(obj).forEach(function(item){
console.log(item)
})
//abc
//c
//Symbol(abc)
}