亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

變量聲明問題 代碼黑洞嗎?

變量聲明問題 代碼黑洞嗎?

開心的山羊 2016-07-11 13:06:52
<script?type="text/JavaScript"> var?sum,mymoney?=0; for(sum=1;sum<=?10;sum++) {? ??mymoney=?mymoney?+?sum; } ??document.write("sum合計:"+mymoney); </script> 問題:當上面var?后面的?sum?與?mymoney?調換位置?代碼就為NaN 這是為什么?。? 麻煩各位老師看看!
查看完整描述

7 回答

已采納
?
super_mb

TA貢獻101條經驗 獲得超107個贊

NaN意為Not a Number。

我覺得你是不是認為:var?sum,mymoney?=0;這句是給sum和mymoney都賦值為0了,其實只是賦給了mymoney,sum的值為undefined。

如果調換位置,那么就是這樣:

<script?type="text/JavaScript">
var?mymoney,sum?=0;????//代碼中的mymoney只是聲明而未初始化,其值為undefined,而sum=0
for(sum=1;sum<=?10;sum++)
{?
??mymoney=?mymoney?+?sum;??//這里,mymoney未初始化,用undefined?+?sum,可想而知momoney的值為NaN
}
??document.write("sum合計:"+mymoney);
</script>


查看完整回答
6 反對 回復 2016-07-11
?
Suber丶林

TA貢獻75條經驗 獲得超180個贊

調換位置之后,mymoney就是undefined了,如下:

var?sum,?mymoney?=?0;
//?等價于
var?sum?=?undefined;
var?mymoney?=?0;


//?那么你把mymoney與sum的聲明調換過來就是
var?mymoney,?sum?=?0;
//?等價于
var?mymoney?=?undefined;
var?sum?=?0;


//?所以在第一次循環里面
mymoney?=?mymoney?+?sum;
//?這里已經成NaN了。
mymoney?=?nudefined?+?1;?//?=>?NaN


查看完整回答
1 反對 回復 2016-07-11
?
檸檬酸鈉

TA貢獻331條經驗 獲得超534個贊

因為你只聲明一個變量不給他賦值的話默認為undefined,undefined和任何東西運算都為undefined,所以正?,F象

查看完整回答
1 反對 回復 2016-07-11
?
地獄快車_666

TA貢獻4條經驗 獲得超0個贊

var?sum,mymoney?=0;

多變量聲明你理解錯了,這里編譯器理解的是 :

  1. var sum 聲明一個變量sum,你沒有給他賦值那么默認就是undefined 。

  2. var mymoney = 0; 聲明一個變量mymoney為0。

在后面做運算的時候任何數字加undefined都是NaN,not a number。

查看完整回答
反對 回復 2016-07-11
?
Tofly_ZZL

TA貢獻1條經驗 獲得超0個贊

變量賦值問題,多變量賦值不是這樣的。

查看完整回答
反對 回復 2016-07-11
?
nickylau82

TA貢獻128條經驗 獲得超67個贊

NaN是not a number的意思。

主要因為單var模式的時候,賦值應該是每個變量都去賦值,因為只是單var,并不是單賦值。

var sum=0,mymoney=0;

不過題主習慣很好,把所有的變量在最上面采用單var聲明的方式賦值。


不過最好是如下寫法:

var?sum?=?0,
????mymoney?=?0;
for(sum?=?1;?sum?<=?10;?sum++)?{
??//邏輯代碼
}

因為sum只是個計數器,而mymoney是業務邏輯代碼,他們最好換行分開寫,另外就是JavaScript由于其解析原理,最好把左邊花括號放在上面一行。

查看完整回答
反對 回復 2016-07-11
?
EricPan

TA貢獻9條經驗 獲得超2個贊

語法錯誤,javascript多變量聲明是這樣的var name="Gates", age=56, job="CEO";

查看完整回答
反對 回復 2016-07-11
  • 7 回答
  • 0 關注
  • 2066 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號