JavaSctipt语句for循环的思考

一、语法

for (语句 1; 语句 2; 语句 3) {
    被执行的代码块;
}
  • 语句 1: 在循环(代码块)开始前执行, 可选.
  • 语句 2: 定义运行循环(代码块)的条件, 可选, 如果省略了语句 2, 那么必须在循环内提供 break, 否则循环就无法停下来.
  • 语句 3: 在循环(代码块)已被执行之后执行, 可选.

二、常规写法

var arr = [1, 2, 3, 4, 5];
(function(){
    for(var i = 0; i < arr.length; i++){
        console.log(arr[i]); //1 2 3 4 5
    }
})();

三、改进

3.1 将数组长度提前提取出来,避免每次循环提取一次

(function(){
    for(var i = 0, max = arr.length; i < max; i++){
        console.log(arr[i]); //1 2 3 4 5
    }
})();

3.2 i += 1i = i+1i++

(function(){
    for(var i = 0, max = arr.length; i < max; i += 1){
        console.log(arr[i]); //1 2 3 4 5
    }
})();

3.3 和0作比较更快

(function(){
    for(var i = arr.length; i--;){
        console.log(arr[i]); //5 4 3 2 1
    }
})();
(function(){
    var i = arr.length;
    while(i--){
        console.log(arr[i]); //5 4 3 2 1
    }
})();