3.6问题 求大神帮帮忙

来源:3-6 了解成员数量(数组属性length)

慕慕8192380

2017-12-25 11:45

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

这个结果正确

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

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

求大神帮帮忙!



写回答 关注

5回答

  • 慕前端4547676
    2017-12-25 16:18:13
    已采纳

    因为去掉后 程序判断

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


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


    慕慕8192...

    非常感谢!

    2017-12-25 17:46:32

    共 1 条回复 >

  • 屠龙的小熊猫
    2019-01-09 19:31:14

    因为被当成了连字符

  • Coffee_15
    2017-12-25 16:05:08

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

    PaulPi...

    mynum.length 可以作为操作数, 不信试试 document.write(mynum.length-1); 是可以输出3的..

    2018-12-25 13:51:29

    共 1 条回复 >

  • 慕少9123439
    2017-12-25 14:50:33

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

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

    PaulPi...

    正解!!!!

    2018-12-25 13:49:31

    共 1 条回复 >

  • qq_追忆丶童话_04010142
    2017-12-25 14:45:45

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

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题