Symbol() 建構函式
Symbol() 函式返回 Symbol 型別的原始值。
試一試
const symbol1 = Symbol();
const symbol2 = Symbol(42);
const symbol3 = Symbol("foo");
console.log(typeof symbol1);
// Expected output: "symbol"
console.log(symbol2 === 42);
// Expected output: false
console.log(symbol3.toString());
// Expected output: "Symbol(foo)"
console.log(Symbol("foo") === Symbol("foo"));
// Expected output: false
語法
js
Symbol()
Symbol(description)
引數
description可選-
一個字串。符號的描述,可用於除錯,但不能用於訪問符號本身。
示例
建立 Symbol
要建立新的原始 Symbol,請使用 Symbol(),並可選擇提供一個字串作為其描述。
js
const sym1 = Symbol();
const sym2 = Symbol("foo");
const sym3 = Symbol("foo");
上面的程式碼建立了三個新的 Symbol。請注意,Symbol("foo") 並不會將字串 "foo" 轉換為 Symbol。它每次都會建立一個新的 Symbol。
js
Symbol("foo") === Symbol("foo"); // false
new Symbol()
js
const sym = new Symbol(); // TypeError
這可以防止開發者建立顯式的 Symbol 包裝物件,而不是新的 Symbol 值,並且可能令人驚訝,因為圍繞原始資料型別建立顯式包裝物件通常是可能的(例如,new Boolean、new String 和 new Number)。
如果你確實想建立一個 Symbol 包裝物件,可以使用 Object() 函式。
js
const sym = Symbol("foo");
const symObj = Object(sym);
typeof sym; // "symbol"
typeof symObj; // "object"
規範
| 規範 |
|---|
| ECMAScript® 2026 語言規範 # sec-symbol-constructor |
瀏覽器相容性
載入中…