function sub2() //定义函数
{
var a = prompt("请输入前式:");
var b = prompt("请输入后式:");
var s = prompt("选择运算:");
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("输入错误!");
break;
}
}
这其实是JavaScript为人诟病的一个地方,因为是动态类型的语言,每一个变量其实可以调有valueOf()和toString();这些方法交给运行环境去选择,通常在数值运算里面会优先调用valueOf();在字符串运算中会优先调用toString();比如这里面的+的运算符前面是一个字符串,所以就调用的toString()方法;
试了一下,你用parseInt把prompt包起来就没问题了
、