需要帮助理解函数内的这个变量

Vod*_*nic 0 javascript

这是非常基本的东西,但我正试图围绕这个来继续我对基本Javascript语法的理解.

基本上,我不明白为什么length = queue.length;创建变量.为什么for循环不能循环i < queue.length而不是为它做变量.

var puzzlers = [
    function ( a ) { return 8*a - 10; }, 
    function ( a ) { return (a-3) * (a-3) * (a-3); }, 
    function ( a ) { return a * a + 4; },
    function ( a ) { return a % 5; }
];
var start = 2;
var applyAndEmpty = function( input, queue ) {
   var length = queue.length;
   for(var i = 0; i<length; i++){
       input = queue.shift()(input);
   }
   return input;
};
alert(applyAndEmpty(2, puzzlers));
Run Code Online (Sandbox Code Playgroud)

p.s*_*w.g 5

请注意,在循环内部,您已经:

queue.shift()
Run Code Online (Sandbox Code Playgroud)

shift方法从数组中删除第一个元素并返回它.这意味着它queue会不断调整大小,但i无论你的变量如何都在增加.如果你没有那个,它实际上会遍历队列中第一个元素的前半部分.