2017-11-24 9 views
0

で一緒に2つの変数の数値を追加することができます。 のvar答え= A + Bこれはおそらく愚かですが、私が行うとどのように私はJavascript

私の答えは45と出てくる、その後5 4 aとbとした場合どのようにして数値的に追加することができますか?他のすべての操作(*/- )はできますが、追加はできません。それは愚かな質問ですが、私は新しく痩せようとしています。

var prea、a、回答2、回答4、回答3、b、preb、回答1;

prea=document.getElementById("form1") ; 
a=prea.elements["first"].value; 
preb=document.getElementById("form1") ; 
b=preb.elements["second"].value; 
answer1=a*b; 
answer2=a-b; 
answer3=a/b; 
answer4=a+b; 
document.write("Multiplication:"+answer1); 
document.write("<br>"); 
document.write("Subtraction:"+answer2); 
document.write("<br>"); 
document.write("Division:"+answer3); 
document.write("<br>"); 
document.write("Add:"+answer4); 
+0

parseInt:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt –

+1

あなたは確かにテキスト入力フィールドを操作しています。テキスト入力フィールドの値は[文字列](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)です。代わりに[番号](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)が必要なため、文字列を数値にキャストしてみてください: 'Number(a) +番号(b) '。 –

+0

_wonderful_ javascriptの世界へようこそ:) –

答えて

1

Number(a) + Number(b)を使用して計算します。数字の代わりに文字列を使用している場合は、追加するのではなく単に文字列を連結するだけです。

https://www.w3schools.com/jsref/jsref_number.asp

+0

なぜ ' aとbの文字列? 「他の操作」はなぜ機能するのですか? – Andreas

+0

*、/または - のような他の演算子を使用している場合、文字列オペランドから数値への自動変換があります。これらの演算子は他に何もしないので、うまく動作します。代わりに、+演算子は連結および加算に使用され、javascriptはうまく開発されていないため、+演算子はデフォルトごとの連結に使用されます。 – Tyr

+0

@Tyr「自動変換」は一般に「強制」と呼ばれます。 JavaScriptは '+'が複数のセマンティクスを持っているからといって "うまく開発されていません"。 – Xufox

0

変数は文字列として宣言されています。 parseInt(string)を使用して正しく追加するには、それらを整数値としてキャストする必要があります。

他のすべての演算子が動作する理由は、ジャグリングを入力しようとするためです。ただし、javascriptは数値の追加と文字列の連結の両方に+を使用します。結果を総和にするには、整数型を明示的に使用する必要があります。

+1

[MDN:動的型指定](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures)_ "JavaScriptは疎結合型または動的言語です.JavaScriptの変数は直接関連していません任意の特定の値型、および任意の変数にすべての型の値を割り当て(および再割り当て)することができます」_ – Andreas

関連する問題