ES6 引入了一种新的基础数据类型——Symbol,它是一种类似字符串的数据类型,但是它具有独特性,每个 Symbol 值都是唯一的,不能被复制。
Symbol 的应用场景
Symbol 主要应用于以下两个方面:
1. 用作对象属性的键值
Symbol 可以作为对象属性的键值,这样可以保证键值的唯一性,避免命名冲突。例如:
const obj = {}; const sym = Symbol("mySymbol"); obj[sym] = "hello world"; console.log(obj[sym]); // 输出 "hello world"
2. 用作常量
Symbol 值可以被用作常量,例如:
const mySymbol = Symbol("mySymbol"); const anotherSymbol = Symbol("mySymbol"); console.log(mySymbol === anotherSymbol); // 输出 false
Symbol 的常用方法
Symbol 也有一些常用的方法,包括:
1. Symbol.for(key)
通过传入一个字符串参数,返回一个 Symbol 类型的值。如果在全局中已经存在相同名称的 Symbol 类型的值,那么返回的是已存在的 Symbol 类型的值。例如:
const sym1 = Symbol.for("mySymbol"); const sym2 = Symbol.for("mySymbol"); console.log(sym1 === sym2); // 输出 true
2. Symbol.keyFor(symbol)
通过传入一个 Symbol 类型的值,返回该 Symbol 类型的值对应的全局名称。例如:
const sym = Symbol.for("mySymbol"); const key = Symbol.keyFor(sym); console.log(key); // 输出 "mySymbol"
总结
Symbol 作为一种新型的基础数据类型,可以用来实现轻量级的对象属性唯一标识符,提高代码的可读性和健壮性。我们在开发中,可以多加尝试使用 Symbol 类型,提高代码的质量。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/654c793e7d4982a6eb5f6cd6