JavaScript程序中的流程控制语句用法总结
条件判断语句
1.if语句
if (condition) statement1 else statement2
其中的condition条件可以是任意表达式,而且对这个表达式的求值结果不一定是布尔值。ecmascript会自动调用boolean()转换函数将这个表达式的结果转换为一个布尔值。如果对condition求值的结果为true,则执行statement1,如果对condition求值结果为false,则执行statement2。这两个语句既可以是一行代码,也可以是一个代码块(推荐)。
if (condition1) statement1 else if(condition2) statement2 else statement3
2.switch语句
switch(expression) { case value: statement break; case value: statement break; case value: statement break; default: statement }
switch语句中每一个case的含义是:"如果表达式等于这个值value,则执行后面的语句statement"。而break会导致代码执行跳出switch语句。如果省略break关键字,就会导致执行完当前case后,继续执行下一个case。最后的default关键字则用于在表达式不匹配前面任何一种情形时,执行机动代码(因此,也相当于一个else语句)。
例子1
var num = 25; switch (true) { case num < 0: alert("less than 0"); break; case num >= 0 && num <= 10: alert("between 0 and 10"); break; case num > 10 && num <= 20: alert("between 10 and 20"); break; default: alert("more than 20"); }
注意:switch语句在比较值时使用的是全等操作符,因此不会发生类型转换。
循环语句
后测试循环语句。
在对表达式求值之前,循环体内的代码至少被执行一次。
1.do-while语句
do { statement } while (expression);
例子2
var i = 0; do { i += 2; } while (i < 10); alert(i);//10
前测试循环语句
2.while语句
while(expression) statement
例子3
var i = 0; while(i < 10) { i += 2; } alert(i);//10
3.for语句
它具有在执行循环之前初始化变量和定义循环后要执行代码的能力。
例子4
for(var i = 0;i < 10;i++) { alert(i); }
迭代语句
for-in语句
for-in 语句是一种精准的迭代语句,可以用来枚举对象的属性
for (var prop in window) { console.log(prop); }
ecmascript对象的属性没有顺序。因此通过for-in循环输出的属性名是不可预测的,具体来讲,所有属性都会被返回一次,单反毁的先后次序可能会因浏览器而异。建议在使用之前,先检测确认该对象的值不是null或unedfined。
控制执行语句
break语句
立即退出循环
例子5
var num = 0; for(var i = 1;i < 10;i++) { if(i % 5 == 0) { break; } num++; } alert(num);//4
continue语句
退出当前正在执行的循环代码,然后开始继续循环。
var num = 0; for(var i = 1;i < 10;i++) { if(i % 5 == 0) { continue; } num++; } alert(num);//8
return语句
可指定返回值,也可不指定(此时返回undefined)。
1.return语句后停止并立即退出函数,return后面的语句也永远不会执行
2.return语句只能在函数体内出现,如果不是的话会自动报语法错误