ECMAScript 2019 中的 Symbol 和 Symbol 属性的使用方法

什么是 Symbol?

Symbol 是 ECMAScript 2015 引入的一种新的原始数据类型,表示一个独一无二的标识符。每个 Symbol 都是唯一的,即使它们具有相同的描述符也是如此。Symbol 的主要用途是作为对象属性的键,这样就可以避免键名冲突的问题。

Symbol 的创建方法如下:

Symbol 可以接受一个可选的字符串参数,作为 Symbol 的描述符:

Symbol 属性

在 ECMAScript 2019 中,Symbol 新增了一些属性,使其更加强大和灵活。

Symbol.for()

Symbol.for() 方法会先在全局 Symbol 注册表中查找指定描述符的 Symbol,如果找到则直接返回该 Symbol,否则会创建一个新的 Symbol 并注册到全局 Symbol 注册表中。

Symbol.keyFor()

Symbol.keyFor() 方法返回给定 Symbol 在全局 Symbol 注册表中的键名,如果该 Symbol 不在注册表中则返回 undefined。

Symbol.asyncIterator

Symbol.asyncIterator 属性是一个用于生成异步迭代器的 Symbol。

Symbol.matchAll()

Symbol.matchAll() 方法用于在字符串中查找所有匹配某个正则表达式的子串,并返回一个迭代器。

总结

Symbol 的引入使得 ECMAScript 中的对象属性键可以更加灵活和独特,避免了键名冲突的问题。Symbol 的新增属性使其更加强大和方便,可以方便地生成异步迭代器和查找所有匹配正则表达式的子串。在实际开发中,我们可以结合 Symbol 的特性,更好地设计和实现对象模型。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6576c8d2d2f5e1655d037e60


纠错
反馈