为什么非要加parseInt()呢?

来源:6-11 编程练习

被风追逐的孩子

2016-01-21 11:42

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

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

写回答 关注

2回答

  • 点点杯子
    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

    请叫我_灰灰

    可是为什么减、乘和除法,不需要转换呢?

    2016-02-02 09:54:06

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468781 学习 · 22507 问题

查看课程

相似问题