為什么非要加parseInt()呢?
case"+":var?plus=parseInt(a)+parseInt(b);all=plus;break;
case"+":var?plus=a+b;all=plus;break;
假設a=4,b=6;第一行代碼運行結(jié)果為10,第二行代碼運行結(jié)果為46,這是為什么?
case"+":var?plus=parseInt(a)+parseInt(b);all=plus;break;
case"+":var?plus=a+b;all=plus;break;
假設a=4,b=6;第一行代碼運行結(jié)果為10,第二行代碼運行結(jié)果為46,這是為什么?
2016-01-21
舉報
2016-01-21
這涉及到變量的類型,雖然JS是弱類型,全都定義為var,但實際上會自動判斷為某一種類型。在你的例子中,從input取值來以后默認被判斷為了字符串類型,字符串的+運算就是直接拼接,而你自己開發(fā)過程中是知道這里的值肯定是一個數(shù)字,所以可以用parseInt()函數(shù)將字符串轉(zhuǎn)為數(shù)字,需要注意的是,這個函數(shù)是轉(zhuǎn)為整數(shù),不支持小數(shù),要支持小數(shù)的話可以用parseFloat()函數(shù)(但用小數(shù)又會涉及到精度問題,這個你可以自己去嘗試和研究)
2016-01-21
因為a+b是字符串相加,結(jié)果只是1+1=11,parseInt()的作用就是把字符串轉(zhuǎn)換成整數(shù),這樣1+1=2