看看这个奇怪的for循环

wuxiao_v 2008-05-20 06:15:00
谁能帮我解释一下这个for循环为什么能正常用 ,先走哪,再走哪,跳出循环的条件在哪.


var aa=[1,2,3,4,5,6,7,8,9];



for(var i=0,b; b=aa[i]; i++)
{
document.write(b);
document.write(' ');
}

可以正常便历这个数组,到底原理是什么.
...全文
86 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuxiao_v 2008-05-21
  • 打赏
  • 举报
回复
在java , c ,c# 中 a=b; 这个表达式应该返回的应该是布而值 ,不应该是b的值 ,这个可能就是javascript和高级语言不一样的地方,java 里边 for(int i=0,b;b=aa[i];i++)这么写编译器都不让的.
zero8500 2008-05-21
  • 打赏
  • 举报
回复
没这样做的。不知道可不可以运行。呵呵
gghunter 2008-05-20
  • 打赏
  • 举报
回复
思维定格在> 或者<,==的判断条件.
  • 打赏
  • 举报
回复
中间这个表达式的值是返回b的值,若经过隐式类型转换后为真则继续执行,否则停止
在js中数值0,"",'',null,undefined转换为false,其他转换为true,对undefined也转换为false
用下面的代码测试一下就知道了
if(0) alert(1);
if(undefined) alert(2);
alert(3);

那段代码能够正确执行是因为元素中没有会转换为false的元素否则是不能执行完的
用下面的代码测试下肯定不会输出的
var aa=[0,false,"",4,5,6,7,8,9];
for(var i=0,b;b=aa[i];i++){
alert(b);
}
hbhbhbhbhb1021 2008-05-20
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080520/18/477e0348-88b4-49d2-91f9-e9ff46d93fa3.html

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧