JavaScript循环最佳实践

时间:2018-06-14 08:17:31

标签: javascript performance loops

我正在做tutorial on JavaScript。以下是关于绩效的部分:

  

循环中的每个语句(包括for语句)都会在循环的每次迭代中执行。   可以放在循环外的语句或赋值   使循环运行得更快。

这是一个坏代码的例子:

var i;
for (i = 0; i < arr.length; i++) {

这是一个很好的代码示例:

var i;
var l = arr.length;
for (i = 0; i < l; i++) {

我不记得这是一种比JavaScript更注重性能的语言的最佳实践。事实上,bad code示例似乎更受欢迎。

这是针对JavaScript特有的最佳实践,还是适用于其他语言?

2 个答案:

答案 0 :(得分:2)

  

糟糕的做法

     

for(i = 0; i&lt; arr.length; i ++){

对于循环中的每次迭代,都会评估条件。如果是arr.length,那么每次您尝试从length访问arr属性时。但是,另一方面,如果将其存储在变量中,则可以避免该操作。

答案 1 :(得分:1)

在所有以JavaScript循环的方式中,我认为for-in循环是最安全的。

它可以遍历对象中的属性。

let user = {first:"billy", last:"bob"};
for(let i in user){
    console.log(i);
    console.log(user[i]);
}

如果变量为null,则不会引发错误

let empty = null;
for (let i in empty){
}

它适用于数组

let arr = [3,2,1];
for (let i in arr){
    console.log(i);
    console.log(arr[i]);
}   

.map 。过滤 。降低 .for每个 抛出除数组(空,对象等)以外的任何错误

因此,如果您希望一个循环适用于所有事物,那么in-in就是您想要的。