什么是symbol
symbol 表示独一无二的值 是js中的 新增加的数据类型
为什么会出现这样的一个属性?
因为在es5中对象的属性名都是字符串很容易冲突 当使用symbol时就是一种独一无二的值
创建symbol
let ss1=Symbol();
console.log(typeof ss1) //symbol
但是注意 不能使用new 来构造symbol对象 也就是Symbol不是一个构造函数
let s3=Symbol('sss1')
let s4=Symbol('sss2')
console.log(s3,s4)
Symbol函数的参数接受一个字符串作为字符串 表示这个symbol的描述 即使描述相等两个symbol也不相等
console.log(Symbol('11')==Symbol('22')) //false
symbol数据类型转换
转换成字符串
console.log(String(s3)) //Symbol('sss1')
转换成boolean 本身就是一个true值
console.log(!!Symbol()) //true
不能转换成数字
不能和字符串做拼接 不能和数字的运算 不能做任何的运算
symbol作用就是让对象的属性名不再重复 但是必须为symbol添加描述 否则拿不到这个属性
let s3=Symbol('sss1')
let data={
s3:111
};
console.log(data.s3)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。