ๅ ๆณ๏ผ+๏ผ
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ยฎ 2026 Language Specification # sec-addition-operator-plus |
็่ฆฝๅจ็ธๅฎนๆง
Loadingโฆ