📅  最后修改于: 2023-12-03 14:42:27.357000             🧑  作者: Mango
在 ECMAScript 6 中,Symbol 是一种新的原始数据类型,它的主要作用是创建一个唯一的标识符,可以被用作对象属性的键。
可以通过 Symbol()
构造函数来创建一个唯一的符号。
const mySymbol = Symbol();
在创建 Symbol 时可以传递一个描述字符串作为参数:
const mySymbol = Symbol('My Symbol Description');
这个描述字符串主要是用于调试和错误消息。
由于每个 Symbol 都是唯一的,因此不能通过 new
关键字创建它的实例。每个 Symbol 都有一个唯一的内部值,可以通过 toString()
方法获取它的内部值。
const mySymbol = Symbol();
console.log(mySymbol.toString()); // Symbol()
console.log(typeof mySymbol.toString());// string
一个对象属性的键可以是任何值,包括字符串、数字和 Symbol。使用 Symbol 作为键可以避免属性的命名冲突。
const mySymbol = Symbol();
const myObject = {
[mySymbol]: 'My Value'
};
console.log(myObject[mySymbol]); // 'My Value'
在 Symbol 构造函数中还有一些预定义的内置 Symbol:
for-of
循环使用。toString()
方法。const myObject = {
[Symbol.toStringTag]: 'My ObjectType'
};
console.log(myObject.toString()); // [object My ObjectType]
JavaScript Symbol() 构造函数可以创建唯一的标识符,它可以被用作对象属性的键。由于每个 Symbol 都是唯一的,因此它可以避免属性命名冲突。除了自定义 Symbol,还有一些内置的预定义 Symbol 可以用于特定的场景。