JavaScript中的9种控制流语句

JavaScript中的9种控制流语句

  ECMA-262规定了一组语句(也成为流控制语句)。这些语句定义了 ECMAScript 中的重要语法,有 if 语句do-while 语句while 语句for 语句for-in 语句label 语句break 和 continue 语句with 语句switch 语句共9种。

一、 if 语句

  以下是 if 语句的语法:

if (condition) statement1 else statement2

  其中的 condition(条件) 是判断条件,可以是任意的表达式;不一定非得是布尔值,ECMAScript 会自动调用 Boolean() 转换函数将这个表达式的结果转换为一个布尔值。如果 condition 结果为 true,则执行 statement1 语句,否则执行 statement2 语句。业界推崇两个执行语句使用代码块(以一对花括号括起来的多行代码)。

  示例:

if(i>25){
	alert("Greater than 25.");
}else{
	alert("Less than or equal to 25.");
}

  还有多重 if 语句判断的语法:

if (condition1) statement1 else if (condition2) statement2 else statement3

二、 do-while 语句

  do-while 语句是一种后测试循环语句,即在循环体中的代码执行之后再测试出口条件。循环体内的代码至少会被执行一次。以下是 do-while 语句语法:

do{
    statement;
} while(expression);

  示例:

var i = 0;
do{
    i += 2;
}while(i<10);
alert(i);

三、 while 语句

  while 语句也属于前测试循环语句,即循环体内的代码在执行前就会对出口条件进行求值判断。因此,循环体内的代码可能永远不会被执行。以下是 while 语句语法:

while(expression) statement;

  示例:

var i = 0;
while(i<10){
	i += 2;
}

四、 for 语句

  for 语句是一种前测试循环语句,但它具有在执行循环之前初始化变量定义循环后要执行的代码的能力。以下是 for 语句语法:

for(initialization; expression; post-loop-expression) statement;

  示例:

var count = 10;
for (var i = 0; i < count; i++){
    alert(i)
}

  注意:在循环体内定义的变量等价于在循环体外定义一样,循环体中不存在块级作用域,因此在循环内部定义的变量在外部也可以访问到

  例如:

<script>
    var i = 10;
    for(var m = 0;m<10;m++){
        var j = 0;
        j++;
    }
    console.log(j);		// 1

    for(var i = 0;i<5;i++){
        document.write(i);
    }
    console.log(i);		// 5
</script>

五、 for-in 语句

  for-in 语句是一种精准的迭代语句,可以用来枚举对象的属性。以下是 for-in 语句的语法:

for(property in expression) statement;

  示例:打印出 window 对象的所有属性。

<script>
    for(var propName in window){
        document.write(propName);
        document.write('<br>');
    }
</script>

  打印出的属性顺序是不可预测的,因浏览器而已。

六、 label 语句

  使用 label 语句可以在代码中添加标签,以便将来结合 break 和 continue 使用,加标签的语句一般都要与 for 等循环语句配合使用。语法如下:

label:statement

  示例:

<script>
    // 无label语句,break语句只挑出当前循环层。
    var num = 0;
    for (var i = 0 ; i < 10 ; i++){
        for (var j = 0 ; j < 10 ; j++){
            if( i == 5 && j == 5 ){
                break;
            }
        num++;
        }
    }
    alert(num);     // 95
	// 有label语句,break语句后接标签后跳出到标签处继续循环。
    num = 0;
    outPoint:
    for (var i = 0 ; i < 10 ; i++){
        for (var j = 0 ; j < 10 ; j++){
            if( i == 5 && j == 5 ){
                break outPoint;
            }
        num++;
        }
    }
    alert(num);         // 55
</script>

七、 break 和 continue 语句

  break 语句和 continue 语句用于在循环中精确的控制代码的执行。其中break 语句是会立即退出当层循环,强制执行当层循环的语句。而 continue 也是立即退出当前层的循环,但退出循环后从当前层循环的顶部继续执行

八、 with 语句

  with 语句的作用是将代码的作用域设置到一个特定的对象中。with 语句的语法如下:

with(expression) statement

  定义 with 语句的目的主要是为了简化多次编写同一个对象的工作,如下例子

var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;

  上面的代码中都包含 location 对象,就可以使用 with 语句,改写成如下:

with(location){
    var qs = search.substring(1);
    var hostName = hostname;
    var url = href;
}

  上述代码使用 with 语句关联了 location 对象。这意味着在 with 语句的代码块中,每个变量被认为是一个局部变量,如果在局部环境中找不到该变量的定义,就会查询 location 对象中是否有同名的属性。

  注意:严格模式下不允许使用 with 语句。大型开发中不建议使用。

九、 switch 语句

  switch 语句是多重判断语句,与 if 语句最为密切。语法与 C 语言语法非常接近,如下所示:

switch(expression){
    case value:statement
    	break;
    case value:statement
    	break;
    case value:statement
    	break;
    default:statement
}

  switch 语句中的每一种情形(case)的含义是:如果表达式(expression)等于这个值(value),则执行后面的语句(statement)。break 关键字会导致代码跳出 switch 语句。没有 break 关键字会一个接着一个执行后面的 case。如果表达式没有匹配到任何一种case,则会执行 default 后面的语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ItDaChuang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值