JavaScript的几种循环方式
JavaScript循环 方式 几种
2023-09-11 14:16:54 时间
JavaScript提供了许多通过LOOPS迭代的方法。本教程解释了现代JAVASCRIPT中各种各样的循环可能性
目录:
- for
- forEach
- do...while
- while
- for...in
- for...of
- for...in vs for...of
介绍
JavaScript提供了许多迭代循环的方法。本教程通过一个小例子和主要属性解释每一个。
for
const list = ['a', 'b', 'c']
for (let i = 0; i < list.length; i++) {
console.log(list[i]) //value
console.log(i) //index
}
- 您可以使用break中断for循环
- 您可以使用continue继续for循环的下一次迭代
forEach
在ES5中引入。给定一个数组,您可以使用list.forEach()迭代其属性:
const list = ['a', 'b', 'c']
list.forEach((item, index) => {
console.log(item) //value
console.log(index) //index
})
//index is optional
list.forEach(item => console.log(item))
不过需要注意的是你无法摆脱这个循环。
do...while
const list = ['a', 'b', 'c']
let i = 0
do {
console.log(list[i]) //value
console.log(i) //index
i = i + 1
} while (i < list.length)
您可以使用break中断while循环:
do {
if (something) break
} while (true)
你可以使用continue跳转到下一个迭代:
do {
if (something) continue
//do something else
} while (true)
while
const list = ['a', 'b', 'c']
let i = 0
while (i < list.length) {
console.log(list[i]) //value
console.log(i) //index
i = i + 1
}
您可以使用break中断while循环:
while (true) {
if (something) break
}
你可以使用continue跳转到下一个迭代:
while (true) {
if (something) continue
//do something else
}
与do...while的区别在于do...while总是至少执行一次循环。
for...in
迭代对象的所有可枚举属性,给出属性名称。
for (let property in object) {
console.log(property) //property name
console.log(object[property]) //property value
}
for...of
ES2015引入了for循环,它结合了forEach的简洁性和破解能力:
//iterate over the value
for (const value of ['a', 'b', 'c']) {
console.log(value) //value
}
//get the index as well, using `entries()`
for (const [index, value] of ['a', 'b', 'c'].entries()) {
console.log(index) //index
console.log(value) //value
}
注意使用const。此循环在每次迭代中创建一个新范围,因此我们可以安全地使用它而不是let。
for...in VS FOR...OF
与for...in的区别在于:
- for...of 迭代属性值
- for...in 迭代属性名称
相关文章
- 【JavaScript 6连载】六、认识原型
- [Javascript] Hide Properties from Showing Up in "for ... in" Loops in JavaScript
- [Javascript] Avoiding Mutations in JavaScript with Immutable Data Structures
- [Javascript] Conditionally spread entries to a JavaScript object
- [Javascript] Convert a Callback-Based JavaScript Function to a Promise-Based One
- [Javascript] Understanding the .constructor property on JavaScript Objects
- [Javascript] Compose multiple functions for new behavior in JavaScript
- [Javascript] Decorators in JavaScript
- [Javascript] Filter out Duplicates from Flat JavaScript Array with array.filter / reduce / Set
- [Javascript] Natively Format JavaScript Dates and Times
- [Cypress] install, configure, and script Cypress for JavaScript web applications -- part4
- [Javascript] Multiply Two Arrays over a Function in JavaScript
- [Testing] Config jest to test Javascript Application -- Part 1
- [Javascript] Linting JavaScript with ESLint
- Javascript面向对象编程(二):构造函数的继承
- javascript面向对象之Javascript 继承
- SAP UI5 本地开发如何实现 XML 和 JavaScript 代码的自动完成和嵌入式 API 文档自动显示试读版
- UI5 framework异步加载javascript的solution - 动态创建script node
- 在同一页面显示多个JavaScript统计图表
- 与大家分享一个我最近开始用的不错的JavaScript IDE
- DHTMLX JavaScript Gantt 8.0.1 Crack
- web前端框架Javascript开发基础之JavaScript作用域
- web前端框架Javascript开发基础之JavaScript作用域