有谁知道为什么这是无限循环?
Does anyone know why this is infinite loop?
var arr = [1,2,3,4,5]
for (var i = 2; i < arr.length; i++) {
[arr[i], arr[i+1]] = [arr[i+1], arr[i]]
}
console.log(arr);
我不知道为什么这是一个无限循环..
执行此操作会让您了解会发生什么。
async function inifiniteLoop() {
var arr = [1, 2, 3, 4, 5];
for (var i = 2; i < arr.length; i++) {
[arr[i], arr[i + 1]] = [arr[i + 1], arr[i]];
console.log(arr);
console.log(`i: ${i}; arr.length: ${arr.length}`);
await sleep(2000);
}
}
function sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
(async () => await inifiniteLoop())();
虽然您会在 Java 和许多其他语言中遇到 IndexOutOfBounds
异常,但这在 JavaScript 中有效。
const array = [34]
console.log(array)
array[3] = 23
console.log(array)
var arr = [1,2,3,4,5]
for (var i = 2; i < arr.length; i++) {
[arr[i], arr[i+1]] = [arr[i+1], arr[i]]
}
console.log(arr);
我不知道为什么这是一个无限循环..
执行此操作会让您了解会发生什么。
async function inifiniteLoop() {
var arr = [1, 2, 3, 4, 5];
for (var i = 2; i < arr.length; i++) {
[arr[i], arr[i + 1]] = [arr[i + 1], arr[i]];
console.log(arr);
console.log(`i: ${i}; arr.length: ${arr.length}`);
await sleep(2000);
}
}
function sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
(async () => await inifiniteLoop())();
虽然您会在 Java 和许多其他语言中遇到 IndexOutOfBounds
异常,但这在 JavaScript 中有效。
const array = [34]
console.log(array)
array[3] = 23
console.log(array)