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

3.6问题 求大神帮帮忙

document.write("数组的最大下标是:"+(mynum.length-1));

这个结果正确

document.write("数组的最大下标是:"+mynum.length-1);

去掉  mynum.length-1  的括号后结果为   NAN  我不是很清楚这是为什么

求大神帮帮忙!



正在回答

5 回答

因为去掉后 程序判断

document.write("数组的最大下标是:"+mynum.length  //按顺序执行到这边,发现-1就懵逼,出错了                                    -1);


加括号是优先级,你先算出长度值,再++++++上前面的字符串,你想办法得到结果就好,不要想那么多为什么。。。


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

慕慕8192380 提问者

非常感谢!
2017-12-25 回复 有任何疑惑可以回复我~

因为被当成了连字符

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

NaN 是代表非数字值的特殊值。减号左边操作数为字符串,无法执行减法操作,所以提示NaN

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

PaulPierce

mynum.length 可以作为操作数, 不信试试 document.write(mynum.length-1); 是可以输出3的..
2018-12-25 回复 有任何疑惑可以回复我~

符号具有优先级,当你去掉括号时,系统不清楚你先加后减,还是先mynum.length-1。

mynum.length-1的意思是数组长度-1,为数组最大下标,所以不能去掉括号

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

PaulPierce

正解!!!!
2018-12-25 回复 有任何疑惑可以回复我~

document.write()方法中"**"+ 已经被判断为字符串了,这里的+是被判定为字符串的连接,这里的操作符已经不是运算符了

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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       467398    人
  • 解答问题       21877    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

3.6问题 求大神帮帮忙

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