JavaScript流控制语句
1、if语句
if(condition){
...;
}else if{
...;
}else{
...;
}
2、do-while语句
后测试循环语句,循环体内的代码至少执行一次。
do{
statement
}while(expression);
3、while语句
先测试循环语句
while(expression)
statement
4、for语句
先测试语句
for(initialization;expression;post-loop-expresson)
statement
尽量使用let声名迭代器变量,以达到将这个变量的作用域限定在循环中。
初始化、条件表达式和循环后表达式都不是必须的。空白则创建无穷循环。
5、for-in语句
严格迭代语句,用于枚举对象中的非符号键属性
for(property in expression)
statement
6、for-of语句
严格迭代语句,用于遍历可迭代对象的元素。
for(property of expression)
statement
7、标签语句
常用于嵌套循环
lebel: statement
8、break和continue语句
break语句:立即退出循环,强制执行循环后的下一条语句;
continue语句:立即退出循环,但会再次从循环顶部开始执行。
二者可以配合标签语句。
let num1 = 0;
let num2 = 0;
// outermost标签标识的第一个for语句
outermost:
for(let i=0; i<10; i++){
for(let j=0; j<10;j++){
if(i==5 && j==5){
// 添加标签使break语句不仅退出内部j循环,同时退出外部i循环
break outermost;
}
num1 ++;
}
}
console.log(num1); // 55
outermost1:
for(let i=0; i<10; i++){
for(let j=0; j<10;j++){
if(i==5 && j==5){
// 添加标签使continue语句跳出至外部循环,
// 强制继续执行外部循环,使得内部循环少执行5次
continue outermost1;
}
num2 ++;
}
}
console.log(num2); // 95
9、with语句
将代码作用域设置为特定的对象。针对一个对象反复操作,这时候将代码作用域设置为该对象能提供便利。
with (expression) statement;
但影响性能且难于调试,不推荐。
10、switch语句
switch(expression) {
case value1:
statement
break;
case value2:
statement
break;
default:
statement
}
ES中switch语句可以用于数据类型,且条件的值不需要是常量,也可以是变量或表达式。