Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
加算 (+) 演算子は、数値オペランドの合計または文字列の連結を生成します。
演算子 + は数値の加算と文字列の連結という 2 つの異なる操作のためにオーバーロードされています。評価するとき、まず両方のオペランドをプリミティブに変換します。その後、 2 つのオペランドの型がテストされます。
文字列の連結はテンプレートリテラルや String.prototype.concat() と等価だと思われがちですが、そうではありません。加算は valueOf() を優先的に呼び出して、式をプリミティブに変換します。一方、テンプレートリテラルと concat() は toString()を優先的に呼び出し、式を文字列に変換します。式が [Symbol.toPrimitive]() メソッドを持っている場合、文字列連結は "default" をヒントとしてそれを呼び出しますが、テンプレートリテラルは "string" を使用します。これは、文字列表現とプリミティブ表現が異なるオブジェクト、例えば、 Temporal のように valueOf() メソッドがすべて例外を発生するようなオブジェクトにとって重要です。
"" + x を使用して文字列に変換を行わないことをお勧めします。
それ以外の文字列ではなく、長整数ではない値は数値に変換されます。
加算で長整数と数値のオペランドを混在させることはできません。null、undefined および真偽値は数値に強制変換されるため、使用することはできません。
文字列は他の型よりも優先されるため、文字列と長整数を加算すると TypeError ではなく文字列連結が行われます。
長整数と長整数以外で加算を行うには、どちらかのオペランドを変換してください。
オペランドの一方が文字列の場合、もう一方が文字列に変換され、それらが連結されます。
| ECMAScript® 2027 Language Specification # sec-addition-operator-plus |
ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。
より良いインターネットのための青写真。
このコンテンツの一部は、©1998–2026 個人の mozilla.org 協力者です。コンテンツはクリエイティブ・コモンズ・ライセンスのもとで利用できます。