本文摘自PHP中文网,作者青灯夜游,侵删。
循环语句有:1、for循环;2、“for...in”循环;3、while循环;4、“do…while”循环;5、forEach循环;6、map;7、filter过滤循环;8、“Object.keys”遍历对象的属性。
本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
项目开发中,不管是建立在哪个框架基础上,对数据的处理都是必须的,而处理数据离不开各种遍历循环。javascript中循环遍历有很多种方式,记录下几种常见的js循环遍历。
一、for循环
for 语句主要用于执行确定执行次数的循环。
for 语句的基本语法如下:
1 2 3 |
|
说明:
“初始值表达式”:为循环变量设置初始值;
“条件表达式”:作为是否进入循环的依据,可以是任意表达式,但一般为关系表达式或逻辑表达式,取值为真或假。每次要执行循环之前,都会进行条件表达式值的判断。如果值为真(值为 true 或非 0 或非空),则执行循环体语句;否则就退出循环并执行循环语句后面的代码;
“增量表达式”:根据此表达式更新循环变量的值。
上述 3 个表达式中的任意一个都可以省略,但需要注意的是,for() 中的;不可以省略。所以如果 3 个表达式都省略时,for 语句变为:for(;;){循环体语句}。此时需要注意的是,如果循环体内没有退出循环的语句,将会进入死循环。
示例:
1 2 3 4 5 |
|
二、for...in
for...in循环主要针对于对象的遍历,当想要获取对象的对应键值时,使用for...in还是比较方便的
1 2 3 4 5 6 7 8 9 |
|
三、while循环
while 语句是最常用的一种循环语句,在程序中常用于只需根据条件执行循环而不需关心循环次数的情况。
1 2 3 4 |
|
说明:
条件表达式:为循环控制条件,必须放在圆括号中,可以是任意表达式,但一般为关系表达式或逻辑表达式,取值为真或假。注意:值为 true、非 0、非空的都是真值,反之则为假值。
循环体:代表需要重复执行的操作,可以是简单语句,也可以是复合语句。当为简单语句时,可以省略大括号{},否则必须使用大括号{}。
while 语句在执行时,首先判断条件表达式的值,如果为真,则执行循环体语句,然后再对条件表达式进行判断,如果值还是为真,则继续执行循环体语句;否则执行 while 语句后面的语句。如果表达式的值在第一次判断就为假(为 false 或 0 或为 null 等值),则一次也不会执行循环体。
需要注意的是,为了使 while 循环能正常结束,循环体内应该有修改循环条件的语句或其他终止循环的语句,否则 while 循环将进入死循环,即会一直循环不断地执行循环体。
例如,下面的循环语句就会造成死循环。
1 2 3 4 |
|
上述代码中 i 的初始值为 1,由于循环体内没有修改 i 变量的值,所以表达式 i<=5 永远为真,因而循环体会一直执行。
死循环会极大地占用系统资源,最终有可能导致系统崩溃,所以我们编程时一定要注意避免死循环。
1 2 3 4 5 6 7 8 9 10 |
|
四、do…while循环
do…while 语句是 while 语句的变形。两者的区别在于,while 语句把循环条件判断放在循环体语句执行的前面,而 do…while 语句则把循环条件判断放在循环体语句执行的后面。
do…while 语句的基本语法如下:
1 2 3 |
|
“条件表达式”和“循环体”的含义与 while 语句的相同。在此需要注意的是,do…while 语句最后需要使用;结束,如果代码中没有加上;,则 JavaScript 会自动补上。
do…while 语句在执行时,首先执行循环体语句,然后再判断条件表达式的值,如果值为真(值为 true 或非 0 值),则再次执行循环体语句。do…while 语句至少会执行一次循环体,这一点和 while 语句有显著的不同。
1 2 3 4 5 6 7 8 9 10 |
|
五、forEach
forEach的使用方法和map使用方法差不多,只是forEach方法不返回值,只用来操作数据,且循环中途是无法停止的,总是会将所有成员遍历完
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
六、map
map方法将数组的所有成员依次传入参数函数,然后把每一次的执行结果组成一个新数组返回。循环中途是无法停止的,总是会将所有成员遍历完
1 2 3 4 5 6 |
|
map方法接受一个函数作为参数。该函数调用时,map方法向它传入三个参数:当前成员、当前位置和数组本身。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
七、filter过滤循环
filter方法用于过滤数组成员,满足条件的成员组成一个新数组返回。它的参数是一个函数,所有数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回。该方法不会改变原数组。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
ECMAScirpt5 中 Array 类中的 filter 方法使用目的是移除所有的 ”false“ 类型元素 (false
, null
, undefined
, 0
, NaN
or an empty string):
1 2 3 |
|
Boolean 是一个函数,它会对遍历数组中的元素,并根据元素的真假类型,对应返回 true 或 false.
八、Object.keys遍历对象的属性
Object.keys
方法的参数是一个对象,返回一个数组。该数组的成员都是该对象自身的(而不是继承的)所有属性名,且只返回可枚举的属性。
1 2 3 |
|
判断一个对象是否是空对象,可以用Object.keys(obj).length>0
【推荐学习:javascript高级教程】
以上就是javascript循环语句哪几种的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
javascript数组常用api方法和遍历方法的小结(附示例)
更多相关阅读请进入《javascript》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者