es2015符号的值永远不会重复

es2015符号:

符号是一种新的值类型的数据添加到es2015型,代表着一个价值不重复。

在Javascript引用类型和基本类型的一章中可以看到数据类型。

代码示例如下所示:


让斯瓦尔巴特群岛=符号();
console.log(typeof斯瓦尔巴特群岛)


上述代码的输出值是符号。

符号()函数可用于创建符号类型值。

特别是,您不能使用新的,否则它将是错误的,因为符号是一个值类型的数据,它是很好理解的。

符号()函数可以接受字符串作为参数,作为符号值的描述,或者作为键(键),代码实例如下所示:


设S1 =符号();
设S2 =符号();


该键的功能是便于区分不同符号类型的值。代码实例如下所示:


设S1 =符号();
设S2 =符号();
console.log(s1.tostring());
console.log(s2.tostring());


这两个符号值可以用键很容易地区分。

同一个键的两个符号值不同:


设S1 =符号();
设S2 =符号();
console.log(S1,S2);


上述两个符号值不相等。

符号值不能隐式转换为字符串类型,代码实例如下所示:


设s =符号();
/ /报错
` antzone $ {符号} `
/ /报错
antzone+符号


上面的代码试图在符号隐式转换字符串中出错。

但我们可以显式地将其转换为字符串类型,代码实例如下所示:


设s =符号();
console.log(s.tostring());


符号类型方法和属性:

方法列表如下:




方法
描述


symbol.for()
创建符号类型的值,但不要重复创建具有相同键值的相同符号类型的值。


symbol.keyfor()
获取对应符号值的键。


symbol.prototype.tostring()
返回当前符号对象的字符串表示形式。





属性列表如下所示:




方法
描述


symbol.iterator
一个内置的符号价值,作为一个对象的属性,指出了一个ergodicer接口。


symbol.match





symbol.prototype





symbol.species





symbol.toprimitive