数据类型 Symbol

一、因对象属性名称造成的数据覆盖问题。
  //Symbol是继javaScript之后推出的第七种数据类型。解决对象属性名重复冲突和问题。
    const Person = {
      'Lily':{grade:60,gender:'female'},
      'Nina':{grade:80,gender:'female'},
      'Nina':{grade:80,gender:'female'}
    }
    console.log(Person)
******
二、创建一个Symbol。

Symbol([description])
参数 description 是一个可选参数,是一个字符串,可以用于调试,但不能访问Symbol 自身。 每一个 Symbol() 返回的值都是唯一的。一个Symbol 值能作为对象属性的标识符,这是改数据类型仅有的目的。

console.log(Symbol('car') === Symbol('train'))   //fasle
console.log(Symbol() === Symbol())    //fasle
const Person = {
    [Symbol('Lily')]: { grade: 60, gender: 'female' },
    [Symbol('Nina')]: { grade: 80, gender: 'female' },
    [Symbol('Nina')]: { grade: 80, gender: 'female' }
  }
  console.log(Person)
******
四、Symbol与遍历。
 console.log(Object.getOwnPropertyNames(Person))
  console.log(Object.keys(Person))

  for (let per in  Person) {
    console.log(per)
  }
******
//ES6中为Symbol提供的遍历方法
  const syms = Object.getOwnPropertySymbols(Person).map(sym => Person[sym])
  console.log(syms)
******

详情:https://www.jianshu.com/p/425148370333?utm_source=oschina-app

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容