在javascript中使用for循环定义中的arr [i]和arr.length之间的区别

Sha*_*aoz 6 javascript

我遇到了一些我从未见过的东西,我喜欢它.检查以下示例:

var arr = ['un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept'];

for(var i = 0; arr[i]; i++){
  console.log( arr[i] );
}
Run Code Online (Sandbox Code Playgroud)

代替:

for(var i = 0; i < arr.length; i++){
  console.log( arr[i] );
}
Run Code Online (Sandbox Code Playgroud)

但是它们都实现了相同的结果,即输出数组列表.

我的问题是,在for循环声明中使用'arr [i]'和'arr.length'之间的区别(或相似性)是什么?

非常感谢

Ama*_*dan 11

var arr = ['un', 'deux', 'trois', null, 'cinq', 'six', 'sept'];
Run Code Online (Sandbox Code Playgroud)

现在怎么样?

delete arr[2];
Run Code Online (Sandbox Code Playgroud)

现在怎么样?

只要数组中有假值或键中的不连续(例如使用delete运算符创建的那些),就会显示差异.该length循环将产生falsy值,然后继续,其他人会停下来.