JavaScript语句
ECMAScript中大多数语法都体现在语句中。语句通常使用一或多个关键字完成既定任务。语句可以很简单也可以很复杂。
1. if语句
if语句是使用最频繁的语句之一,语法如下:
if(condition) statement1 else statement2
这里的条件(condition)可以是任何表达式,并且求值结果不一定是布尔值。ECMAScript会自动调用Boolean()函数将这个表达式的值转化为布尔值。如果条件求值为true,则执行语句statement1,如果求值为false,则执行statement2。这里语句可能是一行代码,也可以能是一个代码块。
if(i > 25)
console.log("Greater than 25."); // 一行代码
else {
console.log("Less than or equal to 25."); // 使用语句块(大括号)
}
这里的最佳实践是使用语句块,即使只有一行代码执行也要如此。因为语句块可以避免对什么条件下执行什么产生疑惑。
可以这样连续使用多个if语句
if(condition1) statement1 else if(condition2) statemnt2 else statement3
if(i > 25) {
console.log('Greater than 25.');
}else if (i < 0) {
console.log('Less than 0.');
}else {
console.log('Between 0 and 25, inclusive.');
}
2. do-while语句
do-while 语句是一种后测试循环语句,即循环体中的代码执行之后才会对退出条件进行求值。换句话说,循环体内的代码至少执行一次
let i = 0;
do {
i += 2;
} while(i < 10);
在这个例子中,只要i<10,循环就会重复执行。i从0开始,每次循环递增2。
提示
后测试循环经常用于这种情况:循环体内代码在退出之前至少执行一次。
3. while语句
while语句是一种先测试循环语句,即先检查退出条件,再执行循环体内的代码。因此,while循环内的代码有可能不会执行。
let i = 0;
while (i < 10){
i += 2;
}
这个例子中,变量i从0开始,每次循环递增2.只要i小于10,循环就会继续。
4. for语句
for语句也是先测试语句,只不过增加了进入循环之前的初始化代码,以及循环执行后要执行的表达式
for (initialization; expression; post-loop-expression) statement
看用例
let count = 10;
for(let i = 0; i < count; i++) {
console.log(i);
}
以上代码在循环开始前定义了变量i的初始值为0。然后求值条件表达式,如果求值结果为true(i < count),则执行循环体。因此循环体也可能不执行。如果循环体被执行了,则循环后表达式也会执行,以便递增变量i。for循环跟下面的while循环是一样的。
let count = 10;
let i = 0;
while(i < count) {
console.log(i);
i += 1;
}
无法通过while循环实现的逻辑也无法通过for循环实现,因此for循环只是将循环相关的代码封装在一起了而已。
在for循环的初始化代码中,其实是可以不使用变量声明关键字的。不过,初始化定义的迭代器变量在循环执行完成之后几乎不可能再用到了。因此,最清晰的写法是使用let声明迭代器变量,这样就可以将这个变量的作用域限定在循环中。
初始化、条件表达式和循环后表达式都不是必须得。因此,下面这种写法可以创建一个无穷循环。
for(;;){
doSomething();
}
只是包含表条件表达式,那么for循环实际上就变成了while循环
let i = 0;
let count = 10;
for(; i < count;){
console.log(i);
i += 1;
}