JavaScript 中的 `for` 循环是一种基本的控制结构,用于重复执行一段代码固定的次数或者迭代一个集合中的每个元素。以下是 `for` 循环的几种常见用法。
基础的 `for` 循环
最基础的 `for` 循环包括一个初始化表达式,一个条件表达式,以及一个每次循环末尾执行的表达式。
for (let i = 0; i < 10; i++) {
console.log(i); // 0 到 9
}
在这个例子中:
- `let i = 0` 是初始化表达式,通常用于设置一个计数器。
- `i < 10` 是条件表达式,它在每次循环开始之前进行评估。
- `i++` 是每次循环结束时的更新表达式,通常用于递增或递减计数器。
迭代数组
`for` 循环常用于遍历数组。
let fruits = ['apple', 'banana', 'cherry'];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]); // 输出数组中的每个水果
}
无限循环
如果条件表达式永远为 `true`,则 `for` 循环将变成一个无限循环。
for (;;) {
// do something
if (someCondition) {
break; // 使用 break 语句退出循环
}
}
使用 `for…of` 循环
`for…of` 是 ES6 引入的循环语法,用于迭代可迭代对象(如数组,字符串等)。
let fruits = ['apple', 'banana', 'cherry'];
for (let fruit of fruits) {
console.log(fruit); // 输出数组中的每个水果
}
使用 `for…in` 循环
`for…in` 循环可以用于迭代对象的属性。
let person = { name: 'Alice', age: 25, country: 'USA' };
for (let key in person) {
if (person.hasOwnProperty(key)) { // 排除原型链上的属性
console.log(key + ': ' + person[key]); // 输出对象的每个属性
}
}
注意:通常在 `for…in` 循环中使用 `hasOwnProperty` 是一个好习惯,以避免遍历到对象原型链上的属性。
总结
`for` 循环是 JavaScript 中非常强大和灵活的一个功能,可以用于多种不同的场景。从简单的迭代到复杂的逻辑,正确地使用 `for` 循环可以使得代码更加高效和易于维护。在使用时,应当注意循环的终止条件,避免产生无限循环,以及在进行数组迭代时考虑使用 `for…of` 以简化代码。