自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JavaScript 中 for、forEach、for...in、for...of 循環(huán)的區(qū)別和使用

開發(fā) 前端
forEach 是 JavaScript 數(shù)組對(duì)象的一個(gè)方法,用于遍歷數(shù)組的每個(gè)元素,并對(duì)每個(gè)元素執(zhí)行指定的回調(diào)函數(shù)。

JavaScript 中有多種循環(huán)語句,包括傳統(tǒng)的 for 循環(huán)、forEach 方法、for...in 循環(huán)和 for...of 循環(huán)。這些循環(huán)語句各有特點(diǎn),適用于不同的場(chǎng)景。下面將分別介紹它們的區(qū)別和使用,并給出相應(yīng)的例子。

1. for 循環(huán)

for 循環(huán)是 JavaScript 中最常用的循環(huán)語句之一,它的基本語法為:

for (初始化; 條件; 遞增或遞減) {
    // 循環(huán)體
}
  • 初始化:在循環(huán)開始之前執(zhí)行的代碼,用于初始化循環(huán)控制變量。
  • 條件:在每次迭代之前進(jìn)行條件檢查,如果條件為真,則執(zhí)行循環(huán)體;否則循環(huán)終止。
  • 遞增或遞減:在每次迭代之后執(zhí)行的代碼,用于更新循環(huán)控制變量。

示例:

// 使用 for 循環(huán)計(jì)算數(shù)組中所有元素的總和
let numbers = [1, 2, 3, 4, 5];
let sum = 0;
for (let i = 0; i < numbers.length; i++) {
    sum += numbers[i];
}
console.log(sum); // 輸出:15

2. forEach 方法

forEach 是 JavaScript 數(shù)組對(duì)象的一個(gè)方法,用于遍歷數(shù)組的每個(gè)元素,并對(duì)每個(gè)元素執(zhí)行指定的回調(diào)函數(shù)。其基本語法為:

array.forEach(function(currentValue, index, array) {
    // 回調(diào)函數(shù)
});
  • currentValue:當(dāng)前迭代的元素值。
  • index:當(dāng)前迭代的索引。
  • array:原始數(shù)組對(duì)象。

示例:

// 使用 forEach 方法計(jì)算數(shù)組中所有元素的總和
let numbers = [1, 2, 3, 4, 5];
let sum = 0;
numbers.forEach(function(number) {
    sum += number;
});
console.log(sum); // 輸出:15

3. for...in 循環(huán)

for...in 循環(huán)用于遍歷對(duì)象的可枚舉屬性,并執(zhí)行指定的代碼塊。其基本語法為:

for (let key in object) {
    // 執(zhí)行代碼
}
  • key:對(duì)象的屬性名。
  • object:被遍歷的對(duì)象。

需要注意的是,for...in 循環(huán)不僅遍歷對(duì)象自身的屬性,還會(huì)遍歷繼承的屬性,因此在遍歷對(duì)象時(shí),通常需要使用 hasOwnProperty 方法來過濾掉繼承的屬性。

示例:

// 使用 for...in 循環(huán)遍歷對(duì)象的屬性
let person = {
    name: 'John',
    age: 30,
    gender: 'male'
};
for (let key in person) {
    if (person.hasOwnProperty(key)) {
        console.log(key + ': ' + person[key]);
    }
}
// 輸出:
// name: John
// age: 30
// gender: male

4. for...of 循環(huán)

for...of 循環(huán)是 ES6 引入的一種遍歷可迭代對(duì)象的語法,包括數(shù)組、字符串、Set、Map、Generator 對(duì)象等。其基本語法為:

for (let element of iterable) {
    // 執(zhí)行代碼
}
  • element:當(dāng)前迭代的元素值。
  • iterable:可迭代對(duì)象,例如數(shù)組、字符串等。

與 for...in 循環(huán)不同,for...of 循環(huán)只遍歷可迭代對(duì)象自身的元素,不會(huì)遍歷對(duì)象的屬性。

示例:

// 使用 for...of 循環(huán)遍歷數(shù)組
let numbers = [1, 2, 3, 4, 5];
let sum = 0;
for (let number of numbers) {
    sum += number;
}
console.log(sum); // 輸出:15

區(qū)別和使用場(chǎng)景

  1. for 循環(huán)
  • 適用于需要對(duì)數(shù)組或類數(shù)組對(duì)象進(jìn)行精確控制的情況,例如根據(jù)索引訪問數(shù)組元素、逐個(gè)修改數(shù)組元素等。
  • 可以使用 break 和 continue 控制循環(huán)的流程。
  1. forEach 方法
  • 簡(jiǎn)化了對(duì)數(shù)組的遍歷,代碼更加簡(jiǎn)潔易讀。
  • 不能使用 break 和 continue 控制循環(huán)的流程。
  1. for...in 循環(huán)
  • 適用于遍歷對(duì)象的屬性,特別是需要遍歷對(duì)象的所有可枚舉屬性的情況。
  • 需要注意過濾掉繼承的屬性。
  1. for...of 循環(huán)
  • 適用于遍歷可迭代對(duì)象的情況,包括數(shù)組、字符串等。
  • 不適用于遍歷對(duì)象的屬性,只能遍歷對(duì)象的值。

不同的循環(huán)語句各有特點(diǎn),應(yīng)根據(jù)具體的需求和場(chǎng)景選擇合適的循環(huán)方式。

責(zé)任編輯:武曉燕 來源: 海燕技術(shù)棧
相關(guān)推薦

2024-09-28 10:13:14

2024-09-29 07:00:00

JavaScriptTypeScriptfor...of循環(huán)

2024-08-30 08:43:24

JavaScriptforEachfor循環(huán)

2020-08-02 23:20:36

JavaScriptmap()forEach()

2020-12-22 14:11:45

JS forEach()map()

2022-08-27 14:42:45

Java集合數(shù)組

2009-08-28 17:18:55

foreach循環(huán)

2023-12-19 16:43:01

2023-08-11 17:13:39

JavaScrip

2016-12-06 10:30:39

JavaScriptWriteWriteln

2025-03-17 08:30:00

JavaScript循環(huán)代碼

2021-12-28 20:06:43

JavaScript開發(fā)數(shù)組

2022-03-11 14:59:21

JavaScript數(shù)組字符串

2017-02-22 14:09:31

Javaforeach反編譯

2018-09-26 14:37:17

JavaScript前端編程語言

2024-08-08 08:38:34

JavaScriptforEach循環(huán)

2013-05-28 00:35:48

JavaScriptfor循環(huán)

2022-01-12 15:50:24

JavaScript開發(fā)循環(huán)

2017-01-20 08:30:19

JavaScriptfor循環(huán)

2023-09-04 08:28:34

JavaScripforEach 循環(huán)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)