使用一元 ‘+’ 號運算符使類型轉向Number

在javascript中,”+”號運算符同時充當數學加號和連接符。這會在form表單的域值相加時出現問題,例如,因爲javascript是一個弱類型語言,form 域的值將會被當作數組來處理,而你把它們”+”一起的時候,”+”將被當成連接符,而非數學加號。

有問題的例子:

<form name="myform" action="[url]">
<input type="text" name="val1" value="1">
<input type="text" name="val2" value="2">
</form>

function total() {
var theform = document.forms["myform"];
var total = theform.elements["val1"].value + theform.elements["val2"].value;
alert(total); // 這個將會彈出 "12", 但你想要的是 3!
}

解決這個問題,javascript 需要一個提示來讓它把這些值當做數字來處理。你可以使用”+”號來把數組轉換成數字。給變量或者表達式前置一個”+”號將會強制其當作一個數字來處理,而這也將使得數學”+”得以成功應用。

修改好的代碼:

function total() {
var theform = document.forms["myform"];
var total = (+theform.elements["val1"].value) + (+theform.elements["val2"].value);
alert(total); // This will alert 3
}
發佈了41 篇原創文章 · 獲贊 35 · 訪問量 56萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章