15.Symbol

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 当做一个字符串

你可能感兴趣的:(15.Symbol)