📜  JavaScript符号(1)

📅  最后修改于: 2023-12-03 15:31:48.732000             🧑  作者: Mango

JavaScript 符号

在 JavaScript 中,符号是一种特殊的基本数据类型,用于创建唯一的对象属性键。ES6 引入了符号类型,以将属性的名称更改为不可变,从而解决属性名称冲突的问题。在本文中,我们将深入了解 JavaScript 符号的用法和示例。

创建符号

你可以使用全局 Symbol() 函数创建符号,它会返回一个唯一的符号值:

const mySymbol = Symbol();
console.log(typeof mySymbol); // symbol

传递可选字符串参数给 Symbol() 函数可以帮助调试和代码可读性:

const mySymbol = Symbol('my description');
console.log(mySymbol); // Symbol(my description)
符号的唯一性

每个符号都是唯一的,即使它们具有相同的描述:

const x = Symbol('test');
const y = Symbol('test');
console.log(x === y); // false
符号作为唯一属性键

符号经常用于对象属性中作为唯一键:

const ageSymbol = Symbol('age');
const person = {
  name: 'John',
  [ageSymbol]: 28,
};

console.log(person.name); // John
console.log(person[ageSymbol]); // 28
共享可访问符号

符号也可以在不同的作用域之间共享,即使这些作用域是不同的:

// 在模块中定义
export const mySharedSymbol = Symbol('shared symbol');

// 在另一个模块中访问
import { mySharedSymbol } from 'my-module';
console.log(mySharedSymbol); // Symbol(shared symbol)
内置符号

JavaScript 中有一些内置符号,可以在各种语言内部使用,例如通过 Symbol.iterator 实现可迭代对象的协议。

总结

JavaScript 符号提供了一种创建唯一属性键的强大方式,以及共享根级别命名空间的能力。使用符号是一种更可靠和可扩展的方式来定义属性键,从而减少了代码中名称冲突的风险。