這里的加法運(yùn)算,“+”是不是成了字符連接符,為什么其他運(yùn)算都可以正常進(jìn)行,就這個(gè)是把兩個(gè)數(shù)連接起來輸出呢?
? function sub2() ? ? ? ? ? ? ? ? ? ? //定義函數(shù)
?{
? ? var a = prompt("請(qǐng)輸入前式:");
? ? var b = prompt("請(qǐng)輸入后式:");
? ? var s = prompt("選擇運(yùn)算:");
? ? switch(s){
? ? ? ? case '-':
? ? ? ? ? ? sub=a-b;
? ? ? ? ? ? alert("a和b的差:"+sub);
? ? ? ? ? ? break;
? ? ? ? case '+':
? ? ? ? ? ? sub=a+b;
? ? ? ? ? ? alert("a和b的和:"+sub);
? ? ? ? ? ? break;
? ? ? ? case '*':
? ? ? ? ? ? sub=a*b;
? ? ? ? ? ? alert("a和b的積:"+sub);
? ? ? ? ? ? break;
? ? ? ? case '/':
? ? ? ? ? ? sub=a/b;
? ? ? ? ? ? alert("a和b的商:"+sub);
? ? ? ? ? ? break;
? ? ? ? default:
? ? ? ? ? ? alert("輸入錯(cuò)誤!");
? ? ? ? ? ? break;
? ? }
?}
2017-05-02
這其實(shí)是JavaScript為人詬病的一個(gè)地方,因?yàn)槭莿?dòng)態(tài)類型的語(yǔ)言,每一個(gè)變量其實(shí)可以調(diào)有valueOf()和toString();這些方法交給運(yùn)行環(huán)境去選擇,通常在數(shù)值運(yùn)算里面會(huì)優(yōu)先調(diào)用valueOf();在字符串運(yùn)算中會(huì)優(yōu)先調(diào)用toString();比如這里面的+的運(yùn)算符前面是一個(gè)字符串,所以就調(diào)用的toString()方法;
2020-06-09
試了一下,你用parseInt把prompt包起來就沒問題了
、