關(guān)于case里面的加號,有點疑問
<!DOCTYPE?html> <html> ?<head> ??<title>?事件</title>?? ??<script?type="text/javascript"> ???function?count(){ ????var??res; ????//獲取第一個輸入框的值 var?a=document.getElementById("txt1").value; //獲取第二個輸入框的值 var?b=document.getElementById("txt2").value; //獲取選擇框的值 var?ocal=document.getElementById("select").value; //獲取通過下拉框來選擇的值來改變加減乘除的運算法則 switch(ocal){ case?"+": res=parseInt(a)?+?parseInt(b); break; case?"-": res=a?-?b; break; case?"*": res=a?*?b; break; case?"/": res=a?/?b; break; default: res="請正確輸入"; } ????//設置結(jié)果輸入框的值? document.getElementById("fruit").value=res; ???} ??</script>? ?</head>? ?<body> ???<input?type='text'?id='txt1'?/>? ???<select?id='select'> <option?value='+'>+</option> <option?value="-">-</option> <option?value="*">*</option> <option?value="/">/</option> ???</select> ???<input?type='text'?id='txt2'?/>? ???<input?type='button'?value='?=?'??onClick="count()"/>?<!--通過?=?按鈕來調(diào)用創(chuàng)建的函數(shù),得到結(jié)果-->? ???<input?type='text'?id='fruit'?/>??? ???? ?</body> </html>
這個能正確運行出來,但是在我第一次的時候加的情況下,因為是寫res=a+b,輸出的結(jié)果單純是兩串字拼接在一起,就像23+55=2355這樣,在參考了其他人的寫法才知道這個parseInt,我想問下是不是要算加法的話一定要加這個東西?
2017-01-18
不用,parseInt()的作用是將字符轉(zhuǎn)換為與之相應的整數(shù),
這個程序里要加是因為取值時document.getElementById("txt1").value語句取到的值是字符類型的,直接運行a+b會被認為是字符相加所以“23”+“55”就是2355,
而用了parseInt()后,把“23”,“25”兩個字符轉(zhuǎn)換為了23,25兩個數(shù)字,所以a+b就是23+25=47了。
ps.其實在定義a和b時直接用parseInt()將a,b取整程序會簡單一點:
var a=parseInt(document.getElementById("txt1").value);
var b=parseInt(document.getElementById("txt2").value);
2017-01-19
parseInt()的作用是將從輸入框中獲得的內(nèi)容轉(zhuǎn)為Int類型,樓上說的很清楚了
2017-01-16
不需要啊,parseInt只是對括號中的內(nèi)容取整操作,不影響其他的