为什么这段代码的结果都是NaN?

来源:2-11 编程练习

Jaris

2017-08-22 22:55

var n1 = 0;

            var n2 = 0;

            n1 = parseInt(num1.value);

            n2 = parseInt(num2.value);

            btns[0].onclick = function(){

                ret.innerHTML = n1 + n2 ;

            }

            btns[1].onclick = function(){

                ret.innerHTML = n1 - n2 ;

            }

            btns[2].onclick = function(){

                ret.innerHTML = n1 * n2 ;

            }

            btns[3].onclick = function(){

                ret.innerHTML = n1 / n2 ;

            }


写回答 关注

3回答

  • jia_小海龟
    2017-08-25 12:11:44

    应该是这样的原因:首先你要知道window.onload函数是页面加载之后执行。所以 “var n1 = 0;var n2 = 0; n1 = parseInt(num1.value);n2 = parseInt(num2.value);”这段代码执行之后由于页面是刚加载,还没有输入值。所以n1和n2是NaN。而后点击函数执行的时候,n1和n2都没更新,所以一直是NaN,所以要是你刷新下页面,更新n1和n2的值,结果就会正确。看懂吗?

  • jia_小海龟
    2017-08-25 12:01:22

    我发现个很奇怪的现象,你打开网页刷新之后,点击结果就会变成正确的,你试试。

  • jia_小海龟
    2017-08-23 17:06:52

    因为n1和n2不是整型值,变成parseInt(n1)就可以了

    Jaris

    可是我不是已经parseInt了吗

    2017-08-23 20:33:43

    共 1 条回复 >

用JS实现购物车特效

通过JavaScript实现类似淘宝网络购物车功能效果

43236 学习 · 167 问题

查看课程

相似问题