编码:
function reverseArrayInPlace(array) {
for (var i = 0; i < Math.floor(array.length / 2); i++) {
var old = array[i];
array[i] = array[array.length - 1 - i];
array[array.length - 1 - i] = old;
}
return array;
}
这是否意味着循环的每次迭代都会创建一个新变量 old?在 C/C++ 之后,我更喜欢这样写:
function reverseArrayInPlace(array) {
var old;
for (var i = 0; i < Math.floor(array.length / 2); i++) {
old = array[i];
array[i] = array[array.length - 1 - i];
array[array.length - 1 - i] = old;
}
return array;
}
什么更正确?
与 let 和 const 不同,var 没有块作用域,因此在您的情况下将使用相同的变量。您可以通过比较输出来检查: