问答详情
源自:7-7 返回指定位置的字符

【为什么a--不行?(a-1)可以的】

var mystr="I love JavaScript!";  v

ar a=mystr.length; 

  document.write(mystr.charAt(a--) );

提问者:TXY_ing 2017-02-08 22:23

个回答

  • 甘之如饴4
    2017-07-11 09:33:19

     几乎所有语言 --a 与 a--不一样   --a是先执行a-1   在运行     a--则是先运行再自减

  • qq_忧蓝天空_0
    2017-05-12 19:23:42

    在这段代码中 a-- 是先赋值再减一;==>取a,  document.write(mystr.charAt(a) )

    --a先自减一再赋值;==>等同于(a-1)  document.write(mystr.charAt(--a) )



  • 上帝作证我是个好人
    2017-04-18 16:33:01

    document.write(mystr.charAt(a--) );中a--表示的是将字符串长度作为索引值,正确写法应该是document.write(mystr.charAt(--a) );

    charAt(a--)是先把a作为索引再把a-1;charAt(--a)是先把a--然后再把a作为索引值;两者是有差别的!

  • 朱锋
    2017-03-12 17:15:23

    a-- 是先赋值再减一;

    你可以试试 --a

  • 不知不觉后知后觉嗯
    2017-02-13 13:14:10

    stringObject.charAt(index)中index应该是个值。

    mystr.charAt(a-1);中index=a-1,

    mystr.charAt(a--);中index=a--,但是a--是一条语句 a=a-1,这就相当于你把一条语句赋值给了index,这样不符合.charAt(index)的用法。

    改成下面的就好了:

    var mystr="I love JavaScript!";  v

    ar a=mystr.length;

    a--;//它是一条语句,不是一个值

    document.write(mystr.charAt(a) );


  • qq__9865
    2017-02-09 09:33:04

    (a-1)是个固定值;

    a-- 是无限循环了,你没有判断范围