关于JavaScript变量范围的快速问题.
为什么alert()函数打印值i而不是返回undefined?
$(document).ready(function () {
for(var i = 0; i < 10; i += 1){
}
alert("What is 'i'? " + i);
});
Run Code Online (Sandbox Code Playgroud)
我对JS很新,在几乎所有其他语言中我都涉及过,for循环范围内的声明将包含该循环的值,但在这种情况下不是,为什么?
即What is 'i'? 10'打印.
我正在使用算法类Khan Academy for JavaScript.我写了这样的代码:
var insert = function(array, rightIndex, value) {
for(var i = rightIndex;
i > 0 && array[i-1] > value;
i--) {
array[i] = array[i-1];
}
array[i] = value;
};
var insertionSort = function(array) {
for (var st = 1; st < array.length; st++) {
insert(array, st, array[st]);
}
};
var array = [22, 11, 99, 88, 9, 7, 42];
insertionSort(array);
println("Array after sorting: " + array);
Program.assertEqual(array, [7, 9, 11, 22, 42, 88, 99]);
Run Code Online (Sandbox Code Playgroud)
而现在我想知道这里有什么问题,我无法进入下一个级别...请帮助.:)