ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript が数値を加算する代わりに連結するのはなぜですか?

JavaScript が数値を加算する代わりに連結するのはなぜですか?

Barbara Streisand
リリース: 2024-12-22 02:53:18
オリジナル
923 人が閲覧しました

Why Does JavaScript Concatenate Instead of Adding Numbers?

数値加算における合計ではなく連結

特定のプログラミング シナリオでは、2 つの数値を合計しようとすると、予期しない動作が発生する可能性があります。数値は加算されるのではなく連結されます。この問題は、入力値が数値ではなく文字列として扱われる場合に発生します。

次の JavaScript コードを考えてみましょう:

function myFunction() {
  var y = document.getElementById("txt1").value;
  var z = document.getElementById("txt2").value;
  var x = y + z;
  document.getElementById("demo").innerHTML = x;
}
ログイン後にコピー

このコードを実行すると、1 2 という特殊な結果が発生する可能性があります。予想される「3」ではなく「12」を返します。これは、変数 y と z が最初に HTML 入力フィールドから文字列として取得されるために発生します。 JavaScript は、文字列に対する連結演算 ( ) を数値に対する場合とは異なる方法で解釈します。

この問題を修正して数値を確実に加算するには、計算を実行する前に文字列を明示的に数値に変換する必要があります。 JavaScript は、" " (単項プラス演算子) を使用してこれを実現する簡単なソリューションを提供します。

var x = +y + +z;
ログイン後にコピー

各文字列の先頭に " " を付けることで、強制的に数値に変換されます。これにより、JavaScript が必要な加算演算を実行できるようになり、数値の正しい合計が得られます。したがって、修正されたコード スニペットは次のようになります。

function myFunction() {
  var y = +document.getElementById("txt1").value;
  var z = +document.getElementById("txt2").value;
  var x = y + z;
  document.getElementById("demo").innerHTML = x;
}
ログイン後にコピー

この変更により、入力値が数値として扱われるようになり、連結の問題が回避され、適切な合計が生成されます。

以上がJavaScript が数値を加算する代わりに連結するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート