es6(9)--Symbol

时间:2023-03-09 17:17:16
es6(9)--Symbol
 //Symbol生成一个独一无二的值,生成的值不会相等
{
//声明1
let a1=Symbol();
let a2=Symbol();
console.log(a1===a2);//false
//声明2
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',obj)
//普通的遍历,得不到symbol的值
for(let [key,value] of Object.entries(obj)){
console.log(key,value)
}
//Object.getOwnPropertySymbols可以获取到symbol的值
Object.getOwnPropertySymbols(obj).forEach(function(item){
console.log(obj[item])
})
//Reflect.ownKeys,返回所有的,包含symbol和非symbol
Reflect.ownKeys(obj).forEach(function(item){
console.log(item,obj[item])
})
}