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

变量声明问题 代码黑洞吗?

变量声明问题 代码黑洞吗?

开心的山羊 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,所以正常现象

查看完整回答
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 关注
  • 1906 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信