我偶然发现了我很早就在编程教育中写的一篇旧文章。 由于我发现对它进行工作对教给我基本的JavaScript语法有很大的帮助,所以我终于决定将其发布在这里。 请享用!
介绍
认识Mikey:

当我们上次看到Mikey时,他只是在学习使用VIM。 您可以在此处阅读有关Mikey过去历险的更多信息。
Mikey决定该是时候终于学习他的第二种编程语言了,并认为JavaScript与其他语言一样好。 尽管Mikey已经学到了足够多的语法来学习,但他仍然难以记住所有可用的循环。 让我们快速浏览一下JavaScript中可用的每个循环。
循环
for循环是只要条件返回true执行的循环:
对于([initialExpression]; [condition]; [incrementExpression])
声明
通常, initialExpression声明一个新变量,该变量在评估condition时用作参考点。 一旦执行了循环,它将调用incrementExpression 。
让我们编写一个函数,该函数使用for循环在控制台中记录Mikey最好的朋友:
var friends = [“ Tommy”,“ Billy”,“ Danny”,“ Tony”]
for(var i = 0; i <friends.length; i ++){
console.log(朋友[i])
}
//记录到控制台:
汤米
比利
丹尼
托尼
让我们分别查看每一行。 第一行是声明一个变量,该变量存储一个名称数组。 这是我们的for循环将要迭代的集合。
for循环的初始表达式是声明一个计数器var i 。 该condition确保只要计数器小于friends数组的长度,循环就将继续循环。 一旦执行了循环, i将加1。
在循环中,对于每次迭代,我们将console.log命名为friends数组的第i个索引的名称。
while 循环
while循环传递了一个条件,只要条件返回true ,它将执行其语句。 在执行该语句之前,它将根据条件的返回值检查条件并执行该语句或退出循环。
同时( 条件 )
声明
让我们让Mikey使用while循环从上面重写for循环:
var index = 0
var friends = [“ Tommy”,“ Billy”,“ Danny”,“ Tony”]
而(索引<friends.length){
console.log(friends [index])
索引++
}
//记录到控制台:
汤米
比利
丹尼
托尼
请记住,只要条件保持为真,该语句就会重复执行,因此,如果条件从不等于false,则循环有可能永远重复:
var index = 0
var friends = [“ Tommy”,“ Billy”,“ Danny”,“ Tony”]
而(索引<friends.length){
console.log(朋友[i])
//不增加索引将导致无限循环
}
do…while 循环
给do…while循环提供了一条语句和一个条件,只要条件评估为true,该语句就会重复执行。
做
声明
while( 条件 );
让我们使用do…while循环重新编写for循环:
变量i = 0
var friends = [“ Tommy”,“ Billy”,“ Danny”,“ Tony”]
做{
console.log(朋友[i])
我++
}而(i <friends.length)
//记录到控制台:
汤米
比利
丹尼
托尼
循环中
for..in循环对对象的每个属性执行操作。
对于(对象可变){
陈述
}
由于对象是按键而不是按索引组织的,因此无法像前面的示例中那样使用计数器对对象进行迭代。 让我们调整朋友列表,并使用for…in循环遍历包含Mikey朋友的对象中的每个键:
var friends = {
第一:“汤米”,
第二个:“比利”,
第三名:“丹尼”,
第四名:“托尼”
}
对于(朋友中的各种人){
console.log(人)
}
//记录到控制台:
第一
第二
第三
第四
对于(朋友中的各种人){
console.log(朋友[人])
}
//记录到控制台:
汤米
比利
丹尼
托尼
对于(朋友中的各种人){
console.log(`$ {person}:$ {friends [person]}`)
}
//登录到控制台:
第一:汤米
第二名:比利
第三名:丹尼
第四名:托尼
for…of 循环
for…of循环在可迭代对象上进行迭代。
for( iterable的 变量 ){
声明
}
由于数组和字符串都是可迭代的,因此for…of可以对它们两个进行操作。 让我们看一下在字符串和数组上使用for…of :
var name =“ Mikey”
for(姓名字母){
console.log(字母)
}
//记录到控制台:
中号
一世
ķ
Ë
ÿ
var friends = [“ Tommy”,“ Billy”,“ Danny”,“ Tony”]
对于(朋友的名字){
console.log(名称)
}
//记录到控制台:
汤米
比利
丹尼
托尼
结论
选择要实现的循环取决于许多不同的变量,并非每个循环都适合每种情况。
我发现Loops and Iteration上的MDN页面是JS循环的很好的介绍,并且强烈鼓励希望学习更多有关此主题的人访问该页面。