控制流
控制流是计算机执行脚本中语句的顺序。
If Else
if...else
语句在指定的条件为真时执行一个语句。如果条件为假,则执行可选的 else
子句中的语句。
let a = 10;
if (a > 0) {
result = 'positive';
} else {
result = 'not positive';
}
console.log(result); // positive
For 循环
从 ES6 开始,JavaScript 提供了 3 种不同类型的 "for" 循环。
标准的 for
循环如下:
for (let i = 0; i < 9; i++) {
console.log(i);
}
for...in
for...in
语句遍历对象的所有可枚举字符串属性,包括继承来的可枚举属性。
const object = { a: 1, b: 2, c: 3 };
for (const property in object) {
console.log(`${property}: ${object[property]}`);
}
// a: 1
// b: 2
// c: 3
for...of
for...of
语句执行一个来自可迭代对象的值序列循环。
可迭代对象包括语言自带的 Array
、String
、Map
、Set
等。
const array1 = ['a', 'b', 'c'];
for (const element of array1) {
console.log(element);
}
// a
// b
// c
由于数组本质上也是一个对象,自然可以在其上使用 for...in
循环。但是,它得不到值(value),却只能得到一组整数键(key),即索引(index)。
const array1 = ['a', 'b', 'c'];
for (const element in array1) {
console.log(element);
}
// 0
// 1
// 2
While 循环
while
语句创建一个循环,只要测试条件评估为 true
就会执行指定的语句。条件在执行语句之前评估。
let n = 0;
while (n < 3) {
n++;
}
console.log(n); // 3
do...while
do...while
语句创建一个循环,该循环执行指定的语句,直到测试条件评估为 false
为止。其在执行语句之后评估条件,这使得指定的语句至少会被执行一次。
let result = '';
let i = 0;
do {
i = i + 1;
result = result + i;
} while (i < 5);
console.log(result); // 12345
Switch
switch
语句是可能有许多分支(类似于许多 if / else if)的条件语句。
const fruit = 'mango';
switch (fruit) {
case 'blueberry':
console.log('Blueberries are $0.59 a pound.');
break;
case 'apple':
case 'mango':
console.log('Mangoes and apples are $2.79 a pound.');
break;
default:
console.log(`Sorry, we are out of ${fruit}.`);
}
// Mangoes and apples are $2.79 a pound.
三元运算符
三元运算符 (?:
) 经常用作替代 if...else
语句的一种方式。
let isMember = true;
let fee = isMember ? '$7.00' : '$12.00';
console.log(fee); // $7.00
这是 JavaScript 中唯一接受三个操作数的运算符:一个条件,后面跟着一个问号 (?
),然后是在条件为真时执行的表达式,后面跟着一个冒号 (:
),最后是在条件为假时执行的表达式。
代码挑战
编写一个接受数值数组的函数,使用
for...of
循环计算所有元素的总和。
Loading...
> 此处输出代码运行结果