var mystr="I love JavaScript!"; v
ar a=mystr.length;
document.write(mystr.charAt(a--) );
几乎所有语言 --a 与 a--不一样 --a是先执行a-1 在运行 a--则是先运行再自减
在这段代码中 a-- 是先赋值再减一;==>取a, document.write(mystr.charAt(a) )
--a先自减一再赋值;==>等同于(a-1) document.write(mystr.charAt(--a) )
document.write(mystr.charAt(a--) );中a--表示的是将字符串长度作为索引值,正确写法应该是document.write(mystr.charAt(--a) );
charAt(a--)是先把a作为索引再把a-1;charAt(--a)是先把a--然后再把a作为索引值;两者是有差别的!
a-- 是先赋值再减一;
你可以试试 --a
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) );
(a-1)是个固定值;
a-- 是无限循环了,你没有判断范围