Symbol() 构造函数
**Symbol()
** 函数返回 Symbol 类型的原始值。
试试
语法
参数
description
可选-
字符串。符号的描述,可用于调试,但不能用于访问符号本身。
示例
创建符号
要创建一个新的原始符号,您可以编写 Symbol()
,并在其中包含一个可选的字符串作为描述。
js
const sym1 = Symbol();
const sym2 = Symbol("foo");
const sym3 = Symbol("foo");
以上代码创建了三个新符号。请注意,Symbol("foo")
不会将字符串 "foo"
强制转换为符号。它每次都会创建一个新的符号。
js
Symbol("foo") === Symbol("foo"); // false
new Symbol()
以下使用 new
运算符的语法将抛出一个 TypeError
js
const sym = new Symbol(); // TypeError
这可以防止作者创建显式的 Symbol
包装器对象而不是新的符号值,并且可能令人惊讶,因为创建围绕原始数据类型的显式包装器对象通常是可能的(例如,new Boolean
、new String
和 new Number
)。
如果你真的想创建一个 Symbol
包装器对象,你可以使用 Object()
函数。
js
const sym = Symbol("foo");
const symObj = Object(sym);
typeof sym; // "symbol"
typeof symObj; // "object"
规范
规范 |
---|
ECMAScript 语言规范 # sec-symbol-constructor |
浏览器兼容性
BCD 表格仅在浏览器中加载