JavaScript 的 `for` 循环是编程中非常基础且强大的工具,用于重复执行代码块直到满足特定条件。下面我将从基础用法开始,逐步介绍到一些效率优化和奇特用法。
### 基础用法
for (let i = 0; i < array.length; i++) {
console.log(array[i]);
}
这是最常见的 `for` 循环形式,用于遍历数组。
### 效率优化
#### 1. 缓存数组长度
避免在每次迭代中重新计算数组长度。
const length = array.length;
for (let i = 0; i < length; i++) {
console.log(array[i]);
}
#### 2. 使用 `for...of` 遍历数组(ES6+)
对于数组遍历,ES6 引入了 `for...of` 循环,它直接遍历数组的值,而不需要索引。
for (const value of array) {
console.log(value);
}
#### 3. 逆序遍历
有时需要从数组的末尾开始遍历。
for (let i = array.length - 1; i >= 0; i--) {
console.log(array[i]);
}
### 奇特用法
#### 1. 无限循环
虽然这通常不是好的编程实践,但了解如何创建无限循环是有用的。
for (;;) {
// 无限循环
}
#### 2. 字符串遍历
`for...of` 也可以用于遍历字符串的每个字符。
const str = "hello";
for (const char of str) {
console.log(char);
}
#### 3. 多变量更新
可以在 `for` 循环的初始化、条件和迭代部分更新多个变量。
for (let i = 0, j = 10; i < 5; i++, j--) {
console.log(i, j);
}
#### 4. 使用 `let` 和 `const` 声明循环变量
在 ES6 中,推荐使用 `let` 或 `const` 声明循环变量,以避免在全局作用域中污染变量。
for (let i = 0; i < 5; i++) {
// 使用 let 声明 i
}
这些是从基础到偏门的 `for` 循环用法,希望对你有所帮助。在实际编程中,选择最适合你当前需求的循环形式是很重要的。