流程控制语句

173 阅读1分钟

判断语句

if

if(contidion){
    statement;
}

var i = window.prompt();
if(i = 1){
    console.log(true);
}else{
    console.log(false);
}

contidion会自动调用Boolean()转换函数将其转换为一个布尔值。

switch

注意:

  1. switch和case可以使用任意表达式,不一定是常量。
  2. switch语句进行比较的时候是全等于(===)操作,不会发生类型转换。
switch(expression) {
    case value: statement
    break;
    case value: statement
    break;
    default: statement
}

循环语句

while

while(expression){
    statement;
}

do-while

在对条件表达式求值之前,循环体内得代码至少会被执行一次。

do{
    statement;
}while(expression);

var i = 0;
do{
    i += 2;
}while(i < 10);
console.log(i)

for

while循环做不到的,for循环也做不到

for(var i = 10; i > 0; i--){
    console.log(i);
}

for-in

是一种迭代语句,用于枚举对象的属性。

for(property in object){
    statement;
}
var arr = [1,2,3,null,4,5];
for(key in arr){
    console.log(key);
} // 0 1 2 3 4 5

label

label语句可以与break 和 continue 语句联合使用,从而返回代码中特定的位置。

var num = 0;
for(var i = 0;i<10;i++){
    for(var j = 0;j<10;j++){
        if(i == 5 && j == 5){
            break;
        }
        num++;
    }
}
console.log(num);//95
//
var num = 0;
outerPoint:
for(var i = 0;i<10;i++){
    for(var j = 0;j<10;j++){
        if(i == 5 && j == 5){
            break outerPoint;
        }
        num++;
    }
}
console.log(num);//55

问题

{
    foo: 1
}
是什么?
答:他不是一个对象,foo是一个label标签,它的值为1

break和continue

break

会立即退出循环,强制继续执行循环后面的语句。

var num = 0;
for(var i = 1; i < 10;i++){
    if(i % 2 == 0){
        break;
    }
    num++;
}
console.log(num); // 1

continue

立即退出循环后会从循环的顶部继续执行。

var num = 0;
for(var i = 1; i < 10;i++){
    if(i % 2 == 0){
        continue;
    }
    num++;
}
console.log(num); // 5