说明
ES6 从入门到精通系列(全23讲)学习笔记。
Symbol 类型
原始数据类型:Symbol,它表示是独一无二的值。
最大的用途:用来定义对象的私有变量。
const kaimo = Symbol("kaimo");
const kaimo2 = Symbol("kaimo");
console.log(kaimo === kaimo2);
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yN3UjMzITZ3UDMyQjY5MmZyYzX2QTOzUTM3EzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
如果用 Symbol 定义的对象中的变量,取值时一定要用
[变量名]
。
let s = Symbol('s');
console.log(s);
let obj = {
[s]: "kaimo"
}
console.log(obj[s]);
注意:用 Symbol 定义的对象中的变量无法被
for in
遍历出来
let s = Symbol('s');
let obj = {
[s]: "kaimo",
ss: "kaimo2"
}
for(let key in obj) {
console.log(key)
}
let s = Symbol('s');
let obj = {
[s]: "kaimo",
ss: "kaimo2"
}
console.log(Object.keys(obj))
console.log("--------------")
console.log(Object.getOwnPropertySymbols(obj))
console.log("--------------")
console.log(Reflect.ownKeys(obj))