面试题答案
一键面试主要用途
- 唯一标识:Symbol 类型的值是唯一的,可用于对象属性的键,避免属性名冲突。例如在大型项目中,不同模块可能想向一个对象添加属性,使用 Symbol 作为属性键能确保不会覆盖其他模块添加的属性。
- 元编程:可用于定义对象的内部行为和特性。比如在 JavaScript 中,一些内置的 Symbol(如
Symbol.iterator
)用于定义对象的迭代行为。
创建示例
使用 Symbol()
函数创建一个 Symbol:
let mySymbol = Symbol();
let anotherSymbol = Symbol('description'); // 可添加描述,方便调试
也可以使用 Symbol.for(key)
方法,它会在全局 Symbol 注册表中搜索具有给定键的 Symbol,如果找到则返回该 Symbol,否则创建一个新的 Symbol 并注册到全局注册表:
let sharedSymbol1 = Symbol.for('shared');
let sharedSymbol2 = Symbol.for('shared');
console.log(sharedSymbol1 === sharedSymbol2); // true