JavaScript 符號
一個易於理解 JavaScript 符號的教程
符號是 JavaScript 的原始資料類型之一,同樣還有 字符串、數字、布林值、空值和未定義值。
它在 ECMAScript 2015中被引入,所以只有幾年的歷史。
這是一種非常奇特的資料類型。一旦您創建了一個符號,它的值就會保持為私有且供內部使用。
創建後,只剩下符號參考。
通過調用Symbol()
全局工廠函數來創建符號:
1 | const mySymbol = Symbol() |
每次調用Symbol()
我們都會獲得一個新的唯一符號,確保與其他所有符號不同:
1 | Symbol() === Symbol() //false |
您可以向Symbol()
傳遞一個參數,用作符號的描述,僅用於調試目的:
1 | console.log(Symbol()) //Symbol() |
符號通常用於識別對象的屬性。
經常用於避免屬性之間的名稱衝突,因為沒有一個符號等於另一個符號。
或者用於添加不能被用戶有意或無意地覆蓋的屬性。
例如:
1 | const NAME = Symbol() |
符號不會被枚舉,這意味著它們不會在運行在對象上的 for..of
或 for..in
循環中被包括。
符號不是 Object.keys()
或 Object.getOwnPropertyNames()
的一部分。
您可以使用 Object.getOwnPropertySymbols()
方法來訪問賦值給對象的所有符號。
tags: [“JavaScript”, “Symbols”, “ECMAScript”]