Baseline Widely available
Symbol()
æé 彿°è¿åä¸ä¸ª symbol ç±»åçå¼ï¼ä½æ¯å®å¹¶ä¸å®å
¨æ¯ææé 彿°çè¯æ³ï¼å 为å®ä¸æ¯æ new Symbol()
è¯æ³ï¼ä¹æ æ³è¢«åç±»åãå®å¯ä»¥ä½ä¸º class
å®ä¹ä¸ extends
åå¥çå¼ä½¿ç¨ï¼ä½å¯¹å®è¿è¡ super
è°ç¨å°ä¼å¯¼è´å¼å¸¸ã
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
è¯æ³
Symbol()
Symbol(description)
夿³¨ï¼ Symbol()
åªè½å¨æ²¡æ new
çæ
åµä¸è°ç¨ï¼å°è¯ç¨ new
æé ä¼æåº TypeError
ã
description
å¯é
ä¸ä¸ªå符串ï¼ç¨æ¥è¡¨ç¤º symbol çæè¿°ï¼å¯ä»¥ç¨äºè°è¯ï¼ä½ä¸è½ç´æ¥è®¿é® symbol èªèº«ã
è¦å建ä¸ä¸ªæ°çåå§ symbolï¼ä½ å¯ä»¥ä¼ éä¸ä¸ªå¯éçå符串ä½ä¸º description
åæ°æ¥å建 Symbol()
ï¼
const sym1 = Symbol();
const sym2 = Symbol("foo");
const sym3 = Symbol("foo");
ä¸é¢ç代ç å建äºä¸ä¸ªæ°ç symbolï¼æ³¨æ Symbol("foo")
ä¸ä¼å°å符串 "foo"
强å¶è½¬æ¢æ symbolï¼èæ¯æ¯æ¬¡æ»æ¯å建ä¸ä¸ªæ°ç symbolï¼
Symbol("foo") === Symbol("foo"); // false
new Symbol()
ä¸é¢å¸¦æ new
è¿ç®ç¬¦çè¯æ³å°ä¼æåºä¸ä¸ª TypeError
ï¼
const sym = new Symbol(); // TypeError
è¿ä¸éå¶æ¯ä¸ºäºé²æ¢å¼å人åå建ä¸ä¸ªæ¾å¼ç Symbol
å
è£
对象ï¼è䏿¯ä¸ä¸ªæ°ç symbol å¼ãè¿å¯è½ä¼è®©äººæå°å°æ°ï¼å 为å¨é常æ
åµä¸ï¼å¯ä»¥åå»ºåºæ¬æ°æ®ç±»åçæ¾å¼å
è£
对象ï¼ä¾å¦ new Boolean
ãnew String
å new Number
ï¼ã
å¦æä½ ççæ³å建ä¸ä¸ª Symbol
å
è£
å¨å¯¹è±¡ï¼ä½ å¯ä»¥ä½¿ç¨ Object()
彿°ï¼
const sym = Symbol("foo");
const symObj = Object(sym);
typeof sym; // "symbol"
typeof symObj; // "object"
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4