课程
/前端开发
/JavaScript
/JavaScript进阶篇
var mystr="I love JavaScript!"; v
ar a=mystr.length;
document.write(mystr.charAt(a--) );
2017-02-08
源自:JavaScript进阶篇 7-7
正在回答
几乎所有语言 --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)的用法。
改成下面的就好了:
a--;//它是一条语句,不是一个值
document.write(mystr.charAt(a) );
不知不觉后知后觉嗯
(a-1)是个固定值;
a-- 是无限循环了,你没有判断范围
举报
本课程从如何插入JS代码开始,带您进入网页动态交互世界
4 回答 alert(a);为甚么a的值变成1?
4 回答a=3,b=5 与sum=a+b 为什么顺序不可以变呢
5 回答为什么第二次a为6;b为1
5 回答为什么return a-b可以决定升降序?
3 回答为什么<a href="javascript:deltr(this);" >删除</a>不行呢?