一、Symbol 简介
Symbol
是 JavaScript 中的一种基本数据类型,它表示唯一的标识符。Symbol
的主要目的是防止属性名冲突,尤其是在多个代码库或模块中共享对象时。Symbol
值可以用作对象的属性名,这样可以确保属性名是唯一的,不会与其他属性名冲突。Symbol定义的对象属性不能使用for…in循环遍历,但可以使用 Reflect.ownKeys
来获取对象的所有键名。
二、Symbol 的创建
可以使用 Symbol()
函数来创建一个新的 Symbol
值。这个函数可以接受一个可选的字符串参数,作为 Symbol
的描述。描述只是为了调试目的,不会影响 Symbol
的唯一性。
let s1 = Symbol();
console.log(s1, typeof s1); // Symbol() "symbol"
let s2 = Symbol('尚硅谷');
let s2_2= Symbol('尚硅谷');
console.log(s2 === s2_2); // false
// 使用 Symbol.for 定义
let s3 = Symbol.for('尚硅谷')