问答详情
源自:6-11 编程练习

为什么非要加parseInt()呢?

case"+":var plus=parseInt(a)+parseInt(b);all=plus;break;
case"+":var plus=a+b;all=plus;break;

假设a=4,b=6;第一行代码运行结果为10,第二行代码运行结果为46,这是为什么?

提问者:被风追逐的孩子 2016-01-21 11:42

个回答

  • 点点杯子
    2016-01-21 12:56:29

    这涉及到变量的类型,虽然JS是弱类型,全都定义为var,但实际上会自动判断为某一种类型。在你的例子中,从input取值来以后默认被判断为了字符串类型,字符串的+运算就是直接拼接,而你自己开发过程中是知道这里的值肯定是一个数字,所以可以用parseInt()函数将字符串转为数字,需要注意的是,这个函数是转为整数,不支持小数,要支持小数的话可以用parseFloat()函数(但用小数又会涉及到精度问题,这个你可以自己去尝试和研究)

  • 大斌啊大斌啊
    2016-01-21 12:33:46

    因为a+b是字符串相加,结果只是1+1=11,parseInt()的作用就是把字符串转换成整数,这样1+1=2