日期:2014-05-16  浏览次数:20412 次

alert菜鸟问题
function cal()
  {
var p1=prompt("请输入第一个数","");
var p2=prompt("请输入第二个数","");
var p3=prompt("请输入运算符","");
switch(p3)
{
case "+":
alert(p1+p3+p2+"="+(parseInt(p1)+parseInt(p2)));break;
case "-":
alert(p1+p3+p2+"="+(p1-p2));break;
case "*":
alert(p1+p3+p2+"="+p1*p2);break;
case "/":
alert(p1+p3+p2+"="+p1/p2);break;
default:
alert("输入有误!");break;
}
  }

把(parseInt(p1)+parseInt(p2))换成(p1+p2)为什么就没办法显示正确结果啊?

------解决方案--------------------
探讨

输入1+1
alert(p1+p3+p2+"="+(parseInt(p1)+parseInt(p2)));出来的结果是2
alert(p1+p3+p2+"="+(p1+p2));结果是11
为什么?

------解决方案--------------------
可以用谷歌搜索一下百度 看看自动类型转换 对你有用 简单的说就是 if(1){这个函数体也会执行,进行了自动类型转换。}至于你说的那个-/*这三个符号不具备字符串的运算,而+号符合字符串运算,所以优先考虑这一个拼接