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高階程式設計第四版