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

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

var mystr="I love JavaScript!";  v

ar a=mystr.length; 

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

正在回答

6 回答

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

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

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

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



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

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

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

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

a-- 是先赋值再减一;

你可以试试 --a

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

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) );


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

不知不觉后知后觉嗯

代码显示格式不太对0.0 你理解意思就行
2017-02-13 回复 有任何疑惑可以回复我~

(a-1)是个固定值;

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

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

举报

0/150
提交
取消

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

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