博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js循环语句
阅读量:4013 次
发布时间:2019-05-24

本文共 2293 字,大约阅读时间需要 7 分钟。

JavaScript 支持不同类型的循环:

for - 循环代码块一定的次数
for/in - 循环遍历对象的属性
while - 当指定的条件为 true 时循环指定的代码块
do/while - 同样当指定的条件为 true 时循环指定的代码块

javascript有4种循环语句:while、do/while、for、for/in,它们的工作原理几乎一样:只要给定条件仍能得到满足,包含在循环语句里的代码就将重复地执行下去。一旦给定条件的求值结果不再是true,循环也就到此为止。其中最常用的循环就是对数组元素的遍历

break可以退出循环continue 可以退出当次循环

For 循环

for 循环是您在希望创建循环时常会用到的工具。

下面是 for 循环的语法:

for (语句 1; 语句 2; 语句 3)  {  被执行的代码块  }语句 1 在循环(代码块)开始前执行             例:var i = 0;语句 2 定义运行循环(代码块)的条件         例:i<10;语句 3 在循环(代码块)已被执行之后执行  例:i++

while 循环

while语句属于前测试循环语句,也就是说,在循环体内的代码被执行之前,就会对出口条件求值。

while(expression){  statement}

当表达式expression是真值时则循环执行statement,直到expression的值为假值为止;如果是假值,那么程序将跳过循环.

[注意]使用while(true)会创建一个死循环

大多数循环都会有一个像count这样的计数器变量。尽管循环计数器常用i、j、k这样的变量名,但如果想要让代码可读性更强,就应当使用更具语义的变量名

var count = 0;while(count < 10){    console.log(count);    count++;}

do/while 循环

do while语句是后测试循环,即退出条件在执行循环内部的代码之后计算。这意味着在计算表达式之前,至少会执行循环主体一次

do{    statement}while(expression);

do/while循环和普通的while循环有两点语法方面不同:

【1】do/while循环要求必须使用关键字do来标识循环的开始,用while来标识循环的结尾并进入循环条件判断

【2】do/while循环用分号结尾。如果while循环体使用花括号括起来,则while循环也不用使用分号做结尾

function printArray(a){    var len = a.length,i=0;    if(len == 0){        console.log('empty');    }else{        do{            console.log(a[i]);        }while(++i

for/in语句

for/in语句也使用for关键字,但它和常规的for循环是完全不同的一类循环

for(variable in object){    statement}

variable通常是一个变量名,也可以是一个可以产生左值的表达式或一个通过var语句声明的变量,总之必须是一个适用于赋值表达式左侧的值。object是一个表达式,这个表达式的计算结果是一个对象。同样,statement是一个语句或语句块,它构成了循环的主体

for/in循环可以用来更方便地遍历对象属性成员

for(var p in o){    console.log(o[p]);}

在执行for/in语句的过程中,javascript解释器首先计算object表达式。如果表达式为null或undefined。javascript解释器将会跳过循环并执行后续的代码。如果表达式等于一个原始值,这个原始值将会转换为与之对应的包装对象(wrapper object)。否则,expression本身已经是对象了。javascript会依次枚举对象的属性来执行循环。然而,在每次循环前,javascript都会先计算variable表达式的值,并将属性名(一个字符串)赋值给它

[注意]只要for/in循环中variable的值可以当做赋值表达式的左值,它可以是任意表达式,每次循环都会计算这个表达式,也就是说每次循环它计算的值有可能不同

var obj = {  x: 1,  y: 2};var props = [];var i = 0;for (props[i++] in obj);props // ['x', 'y']

javascript数组不过是一种特殊的对象,因此,for/in循环可以像枚举对象属性一样枚举数组索引

var o = {a: 1, b: 2, c: 3};for (var i in o) {  console.log(o[i]);}// 1// 2// 3

[注意]for/in循环并不会遍历对象的所有属性,只有可枚举(enumerable)的属性才会遍历到

ECMAScript规范并没有指定for/in循环按照何种顺序来枚举对象属性。但实际上,主流浏览器厂商的javascript实现是按照属性定义的先后顺序来枚举简单对象的属性,先定义的属性先枚举。如果使用对象直接量的形式创建对象,则将按照直接量中属性的出现顺序枚举。有一些网站和javascript库是依赖于这种枚举顺序的,浏览器厂商不大可能会修改这个顺序

转载地址:http://vrifi.baihongyu.com/

你可能感兴趣的文章
谷歌走了
查看>>
多线程使用随机函数需要注意的一点
查看>>
getpeername,getsockname
查看>>
让我做你的下一行Code
查看>>
浅析:setsockopt()改善程序的健壮性
查看>>
关于对象赋值及返回临时对象过程中的构造与析构
查看>>
VS 2005 CRT函数的安全性增强版本
查看>>
SQL 多表联合查询
查看>>
Visual Studio 2010:C++0x新特性
查看>>
drwtsn32.exe和adplus.vbs进行dump文件抓取
查看>>
cppcheck c++静态代码检查
查看>>
CLOSE_WAIT和TIME_WAIT
查看>>
在C++中使用Lua
查看>>
在Dll中调用自身的位图资源
查看>>
IP校验和详解
查看>>
C++中使用Mongo执行count和distinct运算
查看>>
一些socket的编程经验
查看>>
socket编程中select的使用
查看>>
C++获取文件大小常用技巧分享
查看>>
未来5年大机遇:做贩卖多巴胺的超级玩家
查看>>