» JavaScript快速入门 » 1. 基础篇 » 1.5 控制流

控制流

控制流是计算机执行脚本中语句的顺序。

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 语句执行一个来自可迭代对象的值序列循环。

可迭代对象包括语言自带的 ArrayStringMapSet 等。

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...
> 此处输出代码运行结果
上页
下页