ES6学习8章:Symbol

来源:互联网 发布:天津快乐十分软件 编辑:程序博客网 时间:2024/06/04 17:40

Symbol

Symbol是一种新的原始数据类型,表示独一无二的值。它是JS语言的第七种数据类型。(前六种:undefined,null,boolean,String,Number,Object)
Symbol是由Symbol函数生成。(对象的属性名现在可以有两种类型,一种是字符串「可重复」,一种是新境的Symbol类型,凡是属性名是Symbol类型的,就是独一无二的,可以保证不与其他属性名冲突)

let s = Symbol() // 注意没有newtypeof s  // symbol# 接收参数ley s1 = Symbol('foo')s1 //symbol(foo)s1.toString()  //"symbol(foo)"# 运算报错let sym = symbol()"your symbol is" + sym  //TypeError:can't convert symbol to string# 直接转换var sym = symbol()Boolean(sym) //true# symbol值作为属性名var mySym = Symbol();var a = {}a[mySym]='hello'; //方式一Object.defineProperty(a,mySym,{value:'hello'}) // 方式二a={    [mySym]:'hello' // 在对象内部symbol值必须放在方括号之中}
  • 注意:symbol是一种原始数据类型,所以创建它时,不用new(它不是对象)。
  • 上面代码中,变量s是一个独一无二的值
  • Symbol值不是对象,所以不能添加属性,基本上,它是一种类似于字符串的数据类型
  • symbol函数接收一个字符串作为参数,表示对symbol实例的描述,主要是为了在控制台显示,或者转为字符串时,比较容易区分。
  • symbol值不能与其他类型的值进行运算,会报错(但可以显示转换其值)
原创粉丝点击