Appearance
if条件语句
本节目标:理解“if条件语句”的核心思路,并能把它用于实际开发或面试表达。
虽然条件控制语句(如让语句)只在执行多条语句的情况下才要求使用代码块,但最佳实践是始终在控制语句中使用代码块,即使代码块中只有一条语句,例如:
if (test)
alert(test); // 有效,容易出错
if (test) { // 推荐使用
alert(test);
}
理由:让编码意图更加清晰降低修改代码时出错的几率。Use Conditional Logic with If Statements
If语句用于在代码中做条件判断。关键字
if告诉 JavaScript 在小括号中的条件为真的情况下去执行定义在大括号里面的代码。这种条件被称为
Boolean条件,因为他们只可能是
true(真)或
false(假)。 当条件的计算结果为
true,程序执行大括号内的语句。当布尔条件的计算结果为
false,大括号内的代码将不会执行。 伪代码if(条件为真){语句被执行}示例
function test (myCondition) {
if (myCondition) {
return "It was true";
}
return "It was false";
}
test(true); //==返回==
"It was true"
test(false); //==返回== "It was false" 当
test被调用,并且传递进来的参数值为
true,
if语句会计算
myCondition的结果,看它是真还是假。如果条件为
true,函数会返回
"It was true"。当
test被调用,并且传递进来的参数值为
false,myCondition 不 为
true,并且不执行大括号后面的语句,函数返回
"It was false"。 任务 在函数内部创建一个
if语句,如果该参数
wasThatTrue值为
true,返回
"That was true",否则,并返回
"That was false"。
Introducing Else Statements 当if语句的条件为真,大括号里的代码执行,那如果条件为假呢? 正常情况下什么也不会发生。 写一个else语句,当条件为假时执行相应的代码。
if (num > 10) {
return "Bigger than 10";
} else {
return "10 or Less";
}任务 结合多个if语句为一个if/else语句 Introducing Else If Statements 如果你有多个条件语句,你可以通过else if语句把
if语句链起来。
if (num > 15) {
return "Bigger than 15";
} else if (num < 5) {
return "Smaller than 5";
} else {
return "Between 5 and 15";
}任务 使用else if实现同样的效果。
Logical Order in If Else Statements
if、else if语句中代码的执行顺序是很重要的。 在条件判断语句中,代码的执行顺序是从上到下,所以你需要考虑清楚先执行哪一句,后执行哪一句。 这有两个例子。 第一个例子:
function foo(x) {
if (x < 1) {
return "Less than one";
} else if (x < 2) {
return "Less than two";
} else {
return "Greater than or equal to two";
}
}第二个例子更改了代码的执行顺序:
function bar(x) {
if (x < 2) {
return "Less than two";
} else if (x < 1) {
return "Less than one";
} else {
return "Greater than or equal to two";
}
}这两个函数看起来几乎一模一样,我们传一个值进去看看它们有什么区别。
foo(0) // "Less than one"
bar(0) // "Less than two"任务 更改函数的逻辑顺序以便通过所有的测试用例。
Chaining If Else Statements
if/else语句串联在一起可以实现复杂的逻辑,这是多个
if/else if语句串联在一起的伪代码:
if (condition1) {
statement1
} else if (condition2) {
statement2
} else if (condition3) {
statement3
. . .
} else {
statementN
}任务 把
if/else if语句串联起来实现下面的逻辑:
num < 5 - return "Tiny"
num < 10 - return "Small"
num < 15 - return "Medium"
num < 20 - return "Large"
num >= 20 - return "Huge"