ES6学习8章:Symbol

Symbol

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

let s = Symbol() // 注意没有new
typeof 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值不能与其他类型的值进行运算,会报错(但可以显示转换其值)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sophie_U

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值