判断语句
if
if(contidion){
statement;
}
var i = window.prompt();
if(i = 1){
console.log(true);
}else{
console.log(false);
}
contidion会自动调用Boolean()转换函数将其转换为一个布尔值。
switch
注意:
- switch和case可以使用任意表达式,不一定是常量。
- 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