å æ³ï¼+ï¼
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
å æ³ï¼+ï¼éç®åæç¢çæ¸å¼éç®å
ç總åæå串串æ¥ççµæã
å試ä¸ä¸
console.log(2 + 2);
// é æè¼¸åºï¼4
console.log(2 + true);
// é æè¼¸åºï¼3
console.log("åå " + "大家");
// é æè¼¸åºï¼ãåå 大家ã
console.log(2001 + "ï¼å¤ªç©ºæ¼«é");
// é æè¼¸åºï¼ã2001ï¼å¤ªç©ºæ¼«éã
èªæ³
x + y
æè¿°
+ éç®å被éè¼ç¨æ¼å
©ç¨®ä¸åçæä½ï¼æ¸å¼å æ³èå串串æ¥ãå¨éç®æï¼å®æå
å°å
©åéç®å
å¼·å¶è½æçºåå§åå¥ãæ¥èï¼ææª¢æ¥éå
©åéç®å
çåå¥ï¼
- å¦æå ¶ä¸ä¸æ¹æ¯å串ï¼å¦ä¸åéç®å ä¹æè½æçºå串ï¼ç¶å¾é²è¡ä¸²æ¥ã
- 妿å
©è
齿¯ BigIntï¼åå·è¡ BigInt å æ³ã妿䏿¹æ¯ BigInt ä½å¦ä¸æ¹ä¸æ¯ï¼åææåº
TypeErrorã - å¦åï¼å ©éé½æè½æçºæ¸åï¼ç¶å¾å·è¡æ¸å¼å æ³ã
å串串æ¥å¸¸è¢«èªçºçåæ¼æ¨¡æ¿åé¢å¼æ String.prototype.concat()ï¼ä½ä¸¦é妿¤ãå æ³æå°éç®å¼å¼·å¶è½æçºåå§åå¥ï¼æ¤éç¨æåªå
å¼å« valueOf()ï¼è模æ¿åé¢å¼è concat() åæå°éç®å¼å¼·å¶è½æçºå串ï¼åªå
å¼å« toString()ã妿éç®å¼æ [Symbol.toPrimitive]() æ¹æ³ï¼åä¸²ä¸²æ¥ææä»¥ãdefaultãä½çºæç¤ºå¼å«ï¼è模æ¿åé¢å¼å使ç¨ãstringããéå°æ¼å
·æä¸åå串èåå§å¼è¡¨ç¤ºçç©ä»¶å¾éè¦ï¼ä¾å¦ Temporalï¼å
¶ç©ä»¶ç valueOf() æ¹æ³ææåºå
¨é¨ä¾å¤ã
const t = Temporal.Now.instant();
"" + t; // æåº TypeError
`${t}`; // '2022-07-31T04:48:56.113918308Z'
"".concat(t); // '2022-07-31T04:48:56.113918308Z'
建è°ä½ ä¸è¦ä½¿ç¨ "" + x ä¾é²è¡å串強å¶è½æã
ç¯ä¾
>ä½¿ç¨æ¸åå æ³
1 + 2; // 3
å ¶ä»éå串ãé BigInt çå¼æè¢«è½æçºæ¸åï¼
true + 1; // 2
false + false; // 0
ä½¿ç¨ BigInt å æ³
1n + 2n; // 3n
ä½ ä¸è½å¨å æ³ä¸æ··ç¨ BigInt èæ¸åéç®å ã
1n + 2; // TypeError: Cannot mix BigInt and other types, use explicit conversions
2 + 1n; // TypeError: Cannot mix BigInt and other types, use explicit conversions
"1" + 2n; // TypeError: Cannot mix BigInt and other types, use explicit conversions
è¥è¦å° BigInt èé BigInt é²è¡å æ³ï¼è«å¼·å¶è½æä»»ä¸éç®å ï¼
1n + BigInt(2); // 3n
Number(1n) + 2; // 3
使ç¨åä¸²å æ³
å¦æå ¶ä¸ä¸åéç®å æ¯å串ï¼å¦ä¸åæè¢«è½æçºå串並é²è¡ä¸²æ¥ï¼
"foo" + "bar"; // ãfoobarã
5 + "foo"; // ã5fooã
"foo" + false; // ãfoofalseã
"2" + 2; // ã22ã
è¦ç¯
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-addition-operator-plus> |