为了账号安全,请及时绑定邮箱和手机立即绑定

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

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 ;

            }


正在回答

4 回答

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

Jaris 提问者

可是我不是已经parseInt了吗
2017-08-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信