Symbol

75 阅读1分钟
  • ES6新增的数据类型,目的是生成一个独一无二的数据 主要是因为ES5的对象的属性名大多数都为字符串,很容易造成命名冲突。这个数据类型很好的解决了问题。

  • Symbol是可以接受参数的,即使接受的参数一样,所生成的数据也是不一样的

  var re = Symbol("hello")
  var re2 = Symbol("hello")
  console.log(re, re2, re == re2)

image.png

  • 当作为属性名使用时不能用点语法,需要放在括号里面,如果使用的是点的话就是普通属性名,而不是Symbol数据类型
var x=Symbol("hello")
var obj={}
obj.x=12
obj[x]=22
console.log(obj["x"])//普通属性名
console.log(obj[x])//Symbol数据类型

image.png