ES6-Symbol

Symbol:新的原始数据类型,不能添加属性

let sym=Symbol();
//判断sym的数据类型
console.log(typeof Symbol);

在这里插入图片描述
String数据类型相似,但是每次声明的都是唯一的,不是对象,不能用new进行声明

let sym1=Symbol();
let sym2=Symbol();
//每个用Symbol创建的实例,都是唯一的
console.log(sym1 === sym2 );//false

在这里插入图片描述
参数:对当前的Symbol实例的描述

let sym=Symbol('foo');
//将Symbol实例转成字符串
sym.toString();
//将Symbol转成布尔值
Boolean(sym)//true
//转成数值
Number(sym)//Cannot convert a Symbol value to a number

在这里插入图片描述
创建相同Symbol实例:
Symbol.for():创建的Symbol实例,放到了全局环境中,可以搜索到,每次创建都要在全局环境中看是否有该Symbol实例。会在全局环境登记key值

let sym1=Symbol.for('foo');
let sym2=Symbol.for('foo');
console.log(sym1 === sym2)

在这里插入图片描述
Symbol.keyFor() 返回已经登记的Symbol类型的key值

let sym1=Symbol.for('cc');
Symbol.keyFor(sym1);

在这里插入图片描述
Symbol的内置属性:
Symbol.iterator指向该对象的默认遍历器方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值