通用JS七

instanceof

在原型链上寻找这个属性的定义

match

正则匹配字符串

Symbol()

Symbol()函数不能用作构造函数,与new关键字一起使用。这样做是为了避免创建符号包装对象,像使用Boolean、String、Number那样,他们都支持构造函数且可用于初始化原始值的包装对象

Symbol.for()

在全局符号注册表中创建并重用符号

Symbol.keyFor()

查询全局注册表

Object.getOwnPropertyNames() Object.getOwnPropertySymbols() Object.getOwnPropertyDescriptors()
返回对象实例的常规属性数组 返回对象实例的符号属性数组 同时返回常规和符号属性描述的对象
["baz","qux"] [Symbol(foo),Symbol(bar)] ["baz","qux",Symbol(foo),Symbol(bar)]

常用内置符号

这些内置符号也没有什么特别之处,他们就是全局函数Symbol的普通字符串属性,指向一个符号的实例。所有内置符号属性都是不可写、不可枚举、不可配置的。

Symbol.asyncIterator

根据ECMAScript规范,该符号作为一个属性表示一个方法,该方法返回对象默认的AsyncIterator。由for-await-of语句使用。换句话说,这个符号表示实现异步迭代器API的函数。
for-await-of循环会利用这个函数执行异步迭代操作。循环时,他们会调用Symbol.asyncIterator为键的函数,并期望这个函数会返回一个实现迭代器Api的对象。很多时候,返回的对象是实现该Api的AsyncGenerator

Symbol.replace

该函数接收两个参数,即调用replace()方法的字符串实例和替换字符串。返回的值没有限制:

Symbol.search

该符号作为一个属性表示“一个正则表达式方法,该方法返回字符中匹配正则表达式的索引。”正则表达式的原型上默认有这个函数的定义,因此所有正则表达式实例默认是这个String方法的有效参数
注:参考书籍JavaScript高级程序设计第四版

posted @ 2021-09-29 12:00  举个栗子走天下  阅读(83)  评论(0编辑  收藏  举报