说明
ES6 从入门到精通系列(全23讲)学习笔记。
Symbol 类型
原始数据类型:Symbol,它表示是独一无二的值。
最大的用途:用来定义对象的私有变量。
const kaimo = Symbol("kaimo"); const kaimo2 = Symbol("kaimo"); console.log(kaimo === kaimo2);
如果用 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) }
应该使用 Object.getOwnPropertySymbols
或者 Reflect.ownKeys
去处理。
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))