case"+":var plus=parseInt(a)+parseInt(b);all=plus;break;
case"+":var plus=a+b;all=plus;break;
假设a=4,b=6;第一行代码运行结果为10,第二行代码运行结果为46,这是为什么?
这涉及到变量的类型,虽然JS是弱类型,全都定义为var,但实际上会自动判断为某一种类型。在你的例子中,从input取值来以后默认被判断为了字符串类型,字符串的+运算就是直接拼接,而你自己开发过程中是知道这里的值肯定是一个数字,所以可以用parseInt()函数将字符串转为数字,需要注意的是,这个函数是转为整数,不支持小数,要支持小数的话可以用parseFloat()函数(但用小数又会涉及到精度问题,这个你可以自己去尝试和研究)
因为a+b是字符串相加,结果只是1+1=11,parseInt()的作用就是把字符串转换成整数,这样1+1=2