關于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="請正確輸入";
}
????//設置結果輸入框的值?
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()"/>?<!--通過?=?按鈕來調用創建的函數,得到結果-->?
???<input?type='text'?id='fruit'?/>???
????
?</body>
</html>這個能正確運行出來,但是在我第一次的時候加的情況下,因為是寫res=a+b,輸出的結果單純是兩串字拼接在一起,就像23+55=2355這樣,在參考了其他人的寫法才知道這個parseInt,我想問下是不是要算加法的話一定要加這個東西?
2017-01-18
不用,parseInt()的作用是將字符轉換為與之相應的整數,
這個程序里要加是因為取值時document.getElementById("txt1").value語句取到的值是字符類型的,直接運行a+b會被認為是字符相加所以“23”+“55”就是2355,
而用了parseInt()后,把“23”,“25”兩個字符轉換為了23,25兩個數字,所以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()的作用是將從輸入框中獲得的內容轉為Int類型,樓上說的很清楚了
2017-01-16
不需要啊,parseInt只是對括號中的內容取整操作,不影響其他的