- if语句
// if(condition) statement1 else statement2
if(i<25){
alert(1)
}else{
alert(2)
}
- do-while语句
do-while语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件
// do{
// statement
// } while (expression)
var i = 0;
do {
i += 2
} while (i < 10)
console.log(i) //10
- while语句
while语句属于前测试循环语句,也就是说,在循环体内大代码被执行之前,就会对出口条件求值,因此循环体内的代码有可能永远不会执行
// while(expression) statement
var i = 0;
while (i < 10) {
i += 2
}
console.log(i) //10
- for语句
for语句也是一种前测试循环语句,但它具有在执行前初始化变量和定义循环后要执行代码的能力
for (var i = 0; i < 10; i++) {
console.log(i)
}
- for-in语句
for-in语句是一种精准的迭代语句,可以用来枚举对象的属性
// for (property in expression) statement
for (proName in window) {
console.log(proName + ' ' + window[proName])
}
如果要迭代对象的值为null或者undefined,for-in语句会抛出错误,ECMASCRIPT5更正了这一行为,对这种情况不会再抛出错误,而只是不执行循环体。为了保证最大限度的兼容性,建议使用for-in循环之前,先检测确认对象是不是null或者undifined
- lable语句
使用label语句可以在代码中添加标签,以便将来使用
// label: statement
start: for (var i = 0; i < 10; i++) {
console.log(i)
}
- break和continue语句
break和continue语句用于在循环中精确地控制代码的执行,其中break语句会立即退出循环,强制执行循环后面的语句。而continue语句虽然也是立即退出循环,但退出循环后会从循环的顶部继续执行
var num = 0;
for (let i = 1; i < 10; i++) {
if (i % 5 === 0) {
break;
}
num++;
}
console.log(num) //4
var num = 0;
for (let i = 1; i < 10; i++) {
if (i % 5 === 0) {
continue;
}
num++;
}
console.log(num) //8
var num = 0;
outermost:
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if (i === 5 && j === 5) {
break outermost;
}
num++
}
}
console.log(num) //55
var num = 0;
outermost:
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if (i === 5 && j === 5) {
continue outermost;
}
num++
}
}
console.log(num) //95
- switch语句
switch语句中的每一种情形case的含义是,如果表达式的值等于value,则执行后面的语句而break关键字会导致代码执行流跳出switch语句
switch (key) {
case value:
break;
default:
break;
}