Symbol 数据类型

Symbol概述:
symbol 是ES6 引入了一种新的基本数据类型(原始数据类型) Symbol ,表示独一无二的值。它是JavaScript 语言的第七种数据类型,前六种是: undefined 、 null 、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。
每个从 Symbol() 返回的symbol值都是唯一的。一个symbol值能作为对象属性的标识符;这是该数据类型仅有的目的。
Symbol数据类型的特点:
Symbol的值是唯一的,用来解决命名冲突的问题。
Symbol值不能与其他数据类型进行运算。
Symbol定义得的对象的属性不能使用for…in 循环遍历,但是可以使用Reflect.ownKeys来获取对象的所有键名。

Symbol语法与描述:Symbol([description])
description 可选
可选的,字符串类型。对symbol的描述,可用于调试但不是访问symbol本身。
直接使用 Symbol() 创建新的symbol类型,并用一个可选的字符串作为其描述:
let sym1 = Symbol(); let sym2 = Symbol(‘foo’); let sym3 = Symbol(‘foo’);

上面的代码创建了三个新的symbol类型。 注意, Symbol(“foo”) 不会强制将字符串 “foo” 转换成
symbol类型。它每次都会创建一个新的 symbol类型:
Symbol(“foo”) === Symbol(“foo”); //false
sym2===sym3;//false
下面带有 new 运算符的语法将抛出 TypeError 错误

var sym = new Symbol(); // TypeError
这会阻止创建一个显式的 Symbol 包装器对象而不是一个 Symbol 值。围绕原始数据类型创建一个显式
包装器对象从 ECMAScript 6 开始不再被支持。 然而,现有的原始包装器对象,如 new Boolean 、 new String 以及 new Number ,因为遗留原因仍可被创建。

如果你真的想创建一个 Symbol 包装器对象 ( Symbol wrapper object ),你可以使用 Object() 函

var sym = Symbol(“foo”); typeof sym; // “symbol” var symObj = Object(sym); typeof symObj; // “object”
Symbol创建对象的属性
在这里插入图片描述

Symbol创建对象的属性
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值