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

阅读时长 3 分钟读完

什么是 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

纠错
反馈