es6--symbol

什么是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)
    原文作者:丹丹赵
    原文地址: https://segmentfault.com/a/1190000011413373
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞