if else
var name = "kittens";
if (name == "puppies") {
name += "!";
} else if (name == "kittens") {
name += "!!";
} else {
name = "!" + name;
}
name == "kittens!!"; // true
while
while语句先判断条件,满足时执行循环体
while (true) {
// 一个无限循环!
}
do while
do while语句先执行循环体,满足条件在执行
var input;
do {
input = get_input();
} while (inputIsNotValid(input))
for
for (var i = 0; i < 5; i++) {
// 将会执行五次
}
for of
const iterable = [10, 20, 30];
for (const value of iterable) {
console.log(value);
}
// 10
// 20
// 30
for in
var obj = {a: 1, b: 2, c: 3};
for (const prop in obj) {
console.log(`obj.${prop} = ${obj[prop]}`);
}
// Output:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"
&& 和 ||
&& 和 || 是否会执行第二个语句(操作数)取决于第一个操作数的结果
需要访问某个对象的属性时,使用这个特性可以事先检测该对象是否为空:
var name = o && o.getName();
三元操作符
var allowed = (age > 18) ? "yes" : "no";
switch
switch(action) {
case 'draw':
drawIt();
break;
case 'eat':
eatIt();
break;
default:
doNothing();
}
不使用 break
语句,JavaScript 解释器将会执行之后 case
中的代码,大多数时候不要忘了加上 break。
switch(a) {
case 1: // 继续向下
case 2:
eatIt();
break;
default:
doNothing();
}
default
语句可选。switch
和 case
都可以使用表达式; switch
的表达式和 case
的表达式是使用 ===
严格相等运算符进行比较的