6.5 原始数据类型Symbol

169 阅读1分钟

原始数据类型Symbol,它表示是独一无二的值,用的很少,只做了解

最大的用途:用来定义对象的私有变量

const name1 = Symbol('name');
const name2 = Symbol('name');
console.log(name === name); // false
let s1 = Symbol('s1');//声明一个Symbol变量
console.log(s1);//Symbol(s1)

let obj = {
    [s1]: 'Max' //[变量名]将Symbol变量引入对象
};
console.log(obj);//{Symbol(s1): "Max"}

//如果用Symbol定义的对象中的变量,取值时一定要用[变量名],用obj.s1 会返回 undefined
console.log(obj[s1]);// Max
//Symbol变量无法被遍历,且不易被获取
let s = Object.getOwnPropertySymbols(obj);
console.log(s);//[Symbol(s1)]
console.log(s[0]);//Symbol(s1)

let l = Reflect.ownKeys(obj);
console.log(l);//[Symbol(s1)]
console.log(l[0]);//Symbol(s1)