2017-02-08 18 views
0

2つの要素の間で合計演算を実行すると、それらをマージすることなく数値に変換する必要がありますelement.val()は文字列を返します。しかし、乗算、減算、または除算のような他の演算を実行すると、型キャストを実行することなく期待される結果が得られます。javascriptの '*'、 '/'、 ' - '演算子と異なる動作をする理由

function add() 
 
{ 
 
    alert($("#first").val() + $("#second").val()); 
 
} 
 
function divide() 
 
{ 
 
    alert($("#first").val()/$("#second").val()); 
 
} 
 
function multi() 
 
{ 
 
    alert($("#first").val() * $("#second").val()); 
 
} 
 
function subst() 
 
{ 
 
    alert($("#first").val() - $("#second").val()); 
 
}
<input type="text" Id="first" /> 
 
<input type="text" Id="second" /> 
 
<input type="button" Id="add" onclick="add()" value="+"/> 
 
<input type="button" Id="divide" onclick="divide()" value="/"/> 
 
<input type="button" Id="multi" onclick="multi()" value="*" /> 
 
<input type="button" Id="subst" onclick="subst()" value="-"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

+0

http://stackoverflow.com/q/13953939/6868584 – Aidin

+0

[2つの文字列を組み合わせる代わりにJSに数学を強制する方法](http://stackoverflow.com/questions/)の可能な複製4841373/how-to-force-js-to-do-math-with-two-strings-together) –

+0

ここでいくつかのユースケースと[説明](http://www.java2s.com/Tutorials/ Javascript/Tutorial/0110__Javascript_arithmetic_operators.htm) – crowchirp

答えて

6

+オペレータは、文字列を連結するための、または(オペランドの一方が文字列である場合interpretterは連結に有利であろう)番号を追加するためにも使用されます。しかし、/,*および%は数字のみで使用されるため、解釈者はオペランドを数字として見なければなりません。

私は約2日前に同様の質問をしてくれたanswerです。 (それはかなり長いので、私は再びここにそれを再投稿しません)。

関連する問題