js for循环条件判断

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js for循环条件判断相关的知识,希望对你有一定的参考价值。

var arr = [1,2,3];
for (var i = 0; j = arr[i]; i++)
console.log(j);


第二个条件表达式 j = arr[i] 为什么这样写?
它也不是判断语句啊,尽然也可以,
求详解

因为arr[0],arr[1],arr[2]都是不为0的数字,可以转换为true,arr[3]就是undefined了,转换为false。
假如改成这样

var arr = [0,1,2,3];
for (var i = 0; j = arr[i]; i++)
console.log(j);

就不输出了
参考技术A for 语句括号里面有 3部分嘛。其中第二部分是条件,只要返回值是 false(JS是弱类型语言,会自动转换返回值类型true或false),循环就会中断。
在你的例子中,当 i 大于 3 的时候, j = arr[ i ] 返回值是 undefined ,所以就中断了。
但是这样写可能存在问题,就是如果 数组的某一项的值是 0,null,false,undefined 之类的可以转换成false的值,循环也会中断。本回答被提问者采纳
参考技术B 这种情况大部分都是 你下面的要用的变量中,是动态生成的。
如果上面的alert不触发。下面的动态变量还没有获取到。所以才不执行。
当上面的alert出发后,js后面的代码不执行。这个时候,动态变量加载完成。
当你再点击确认按钮后,后面的代码就可以顺利的执行了。
参考技术C js是弱类型语言,数据类型会自动转换的。 参考技术D js的判断相等用=

以上是关于js for循环条件判断的主要内容,如果未能解决你的问题,请参考以下文章

js - for循环语句

JS基础整理(if-else for循环)

js条件判断if-else

Python语法基础03(if语句,while循环与for循环)

关于循环的整理

判断for循环