Symbol

2023/7/12

# 简介

JavaScript基本数据类型之一,引入了一种新的原始数据类型,用于创建独一无二的标识符。

# 特点

  • 独一无二性:每个通过Symbol()函数创建的Symbol值都是唯一的,不会与其他任何值相等。
  • 用作对象属性:Symbol可以作为对象的属性键(key)使用,这样可以确保属性名不会与其他属性名冲突。

# 示例

// 创建一个独一无二的Symbol值
const sym = Symbol();

// 使用Symbol作为对象属性键
const obj = {};
const symbolKey = Symbol("key");
obj[symbolKey] = "value";

console.log(obj[symbolKey]); // 输出: value
console.log(obj); // 输出: {}
console.log(Object.keys(obj)); // 输出: []

// 遍历对象属性,包括Symbol属性
for (let key in obj) {
  console.log(key); // 不会输出任何内容
}

// 获取全局Symbol注册表中的Symbol值
const existingSymbol = Symbol.for("existing");
console.log(Symbol.keyFor(existingSymbol)); // 输出: existing