【ES6】JavaScript中的Symbol

Symbol是JavaScript中的一种特殊的、不可变的、不可枚举的数据类型。它通常用于表示一个唯一的标识符,可以作为对象的属性键,确保对象的属性键的唯一性和不可变性。

Symbol.for()是Symbol的一个方法,它用于创建一个已经注册的Symbol对象。当使用Symbol.for()创建Symbol对象时,会首先检查已经注册的Symbol对象中是否存在与给定字符串相同的Symbol,如果存在,则返回该Symbol对象,否则创建一个新的Symbol对象并注册到已经注册的Symbol对象中。

<!DOCTYPE html>

<script>



// 创建Symbol对象
const sym1 = Symbol();
const sym2 = Symbol('hello');
const sym3 = Symbol('world');
const sym4 = Symbol('world');


// Symbol对象的唯一性和不可变性
console.log(sym1 === sym2); // false
console.log(sym2 === sym3); // false
//Symbol('world')每次都新建一个Symbol保证了不重复
console.log(sym3 == sym4); //false

// Symbol.for()创建Symbol对象,会全局注册
const sym5 = Symbol.for('world');
const sym6 = Symbol.for('world');

// Symbol.for()查找已注册的Symbol对象
console.log(sym5 === sym4); // false
console.log(sym5 === sym6); // true


// Symbol对象可以被作为属性名,确保属性名的唯一性
const obj = {};
obj[sym1] = 'value 1';
obj[sym2] = 'value 2';
obj[sym3] = 'value 3';
obj[sym4] = 'value 4';
obj[sym5] = 'value 5';
obj[sym6] = 'value 6';

console.log(obj[sym1]); // 'value 1'
console.log(obj[sym2]); // 'value 2'
console.log(obj[sym3]); // 'value 3'
console.log(obj[sym4]); // 'value 4'
console.log(obj[sym5]); // 'value 6' sym5和sym6相同
console.log(obj[sym6]); // 'value 6'

</script>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

科学熊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值