為什么這段代碼的結(jié)果都是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 ;
? ? ? ? ? ? }
2017-08-25
應(yīng)該是這樣的原因:首先你要知道window.onload函數(shù)是頁(yè)面加載之后執(zhí)行。所以 “var n1 = 0;var n2 = 0; n1 = parseInt(num1.value);n2 = parseInt(num2.value);”這段代碼執(zhí)行之后由于頁(yè)面是剛加載,還沒(méi)有輸入值。所以n1和n2是NaN。而后點(diǎn)擊函數(shù)執(zhí)行的時(shí)候,n1和n2都沒(méi)更新,所以一直是NaN,所以要是你刷新下頁(yè)面,更新n1和n2的值,結(jié)果就會(huì)正確??炊畣??
2017-08-25
我發(fā)現(xiàn)個(gè)很奇怪的現(xiàn)象,你打開(kāi)網(wǎng)頁(yè)刷新之后,點(diǎn)擊結(jié)果就會(huì)變成正確的,你試試。
2017-08-23
因?yàn)閚1和n2不是整型值,變成parseInt(n1)就可以了