http://topic.csdn.net/u/20080520/18/477e0348-88b4-49d2-91f9-e9ff46d93fa3.html

解决方案 »

  1.   

    中间这个表达式的值是返回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);

      

  2.   

    思维定格在>  或者<,==的判断条件.
      

  3.   

    在java  , c ,c# 中  a=b; 这个表达式应该返回的应该是布而值 ,不应该是b的值 ,这个可能就是javascript和高级语言不一样的地方,java 里边 for(int i=0,b;b=aa[i];i++)这么写编译器都不让的.