原始数据类型Symbol:
- 原始数据类型Symbol ,它表示是独一无二的值 (意味着内存的地址是不相等的)
- 用途:使用较少,一般用来定义对象的私有变量
const name = Symbol('name');
const name2 = Symbol('name');
console.log(name === name2); //false
Symbol的访问:
let s1 = Symbol('s1');
console.log(s1); // Symbol(s1)
let obj = {
[s1]:'小马哥'
};
console.log(obj[s1]) //小马哥
for(let key in obj){
console.log(key); // undefined ---说明她不可遍历
}
console.log(Object.keys(obj)); //[]空数组
- 如果用Symbol定义的对象中的变量,取值时一定要用[变量名]
// 获取Symbol声明的属性名(作为对象的key)
let s = Object.getOwnPropertySymbols(obj);
console.log(s[0]); //Symbol(s1)s
//反射,返回自己的key值
let m = Reflect.ownKeys(obj);
console.log(m); // [Symbol(s1)]