A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Addition below:

åŠ ç®—æ¼”ç®—å (+) - JavaScript

加算演算子 (+)

Baseline Widely available

加算 (+) 演算子は、数値オペランドの合計または文字列の連結を生成します。

試してみましょう
console.log(2 + 2);
// 予想される出力: 4

console.log(2 + true);
// 予想される出力: 3

console.log("hello " + "everyone");
// 予想される出力: "hello everyone"

console.log(2001 + ": A Space Odyssey");
// 予想される出力: "2001: A Space Odyssey"
構文 解説

演算子 + は数値の加算と文字列の連結という 2 つの異なる操作のためにオーバーロードされています。評価するとき、まず両方のオペランドをプリミティブに変換します。その後、 2 つのオペランドの型がテストされます。

文字列の連結はテンプレートリテラルや 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 を使用して文字列に変換を行わないことをお勧めします。

例 数値を使用した加算

それ以外の文字列ではなく、長整数ではない値は数値に変換されます。

true + 1; // 2
false + false; // 0
長整数を使用した加算

長整数と数値のオペランドを混在させることはできません。

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

長整数と長整数以外で加算を行うには、どちらかのオペランドを変換してください。

1n + BigInt(2); // 3n
Number(1n) + 2; // 3
文字列を使用した加算

オペランドの一方が文字列の場合、もう一方が文字列に変換され、それらが連結されます。

"foo" + "bar"; // "foobar"
5 + "foo"; // "5foo"
"foo" + false; // "foofalse"
"2" + 2; // "22"
仕様書 ブラウザーの互換性 関連情報

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