質問: javascriptの勉強を始めました。 教えていただきたいです。 var A 200; var B 250; 上記の値で合計を450と表示させたいです。
回答: javascriptは、文字列に数値を+で繋ぐと、自動的に数値を文字に変換してから連結するという機能があります。 おかげで、 "abc"+123 と書くと "abc123" という文字列が出来上がります。 自動変換の無い言語だと "abc"+IntToString(123) みたいな変換処理を自分でやらないとなりません。 そういう便利機能があるのですが、今回はこれが不味い方向に作用してしいました。 "合計:"+A+B と書いてあると、演算子の優先度で左から処理がなされます。 つまり、 "合計:"+A ↓ "合計:"+200 の部分が最初に行われて、文字列+数値なので、自動変換されて "合計:200" になります。次に "合計:200"+B ↓ "合計:200"+250 も文字列+数値なので自動変換されて "合計:200250" となってしまいました。 なので、算数と同じく()を付けて計算の順番を変えます。 "合計:"+(A+B) とすると、(A+B)が先に計算されるので "合計:"+(200+250) ↓ "合計:"+450 になります。そして上と同じく自動変換されて "合計:450" という文字列になります。