我正在做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特有的最佳实践,还是适用于其他语言?
答案 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就是您想要的。