Symbol
Symbol 是 ES6 新引入的数据类型,它是一种特殊的、不可变的数据类型,用来生成唯一的标识符。
// 场景:一个班有两个叫做 Nina 的,可以用 Symbol 生成唯一标识,括号里面的内容作为描述
const classRoom = {
'Lily': { grade: 60, gender: 'femal' },
[Symbol('Nina')]: { grade: 80, gender: 'femal' },
[Symbol('Nina')]: { grade: 90, gender: 'femal' },
}
console.log(classRoom);
但是需要注意的是,如果对象的属性是 Symbol
类型的值的话,是不能遍历的。如果想获取对象中 Symbol
类型属性的值,可以如下:
const syms = Object.getOwnPropertySymbols(classRoom).map(sym => classRoom[sym]);
// 在这个地方用到 classRoom[sym] 中括号的方式来获取,是为了避免把 sym 当做一个字符串