JavaScript if...Else 语句
当指定条件为真,if 语句会执行一段语句。如果条件为假,则执行另一段语句。
举例说明:
function testNum(a) {
let result;
if (a > 0) {
result = 'positive';
} else {
result = 'NOT positive';
}
return result;
}
console.log(testNum(-5));
// Expected output: "NOT positive"
语法
if (condition)
statement1
[else
statement2]
condition
- 值为真或假的表达式
statement1
- 当condition为真时执行的语句。可为任意语句,包括更深层的内部if语句。要执行多条语句,使用块语句({ ... })将这些语句分组;若不想执行语句,则使用空语句。
statement2
- 如果condition为假且 else从句存在时执行的语句。可为任意语句,包括块语句和嵌套的if语句。
说明
多层 if...else 语句可使用 else if 从句。注意:在 Javascript 中没有 elseif (一个单词)关键字。
if (condition1)
statement1
else if (condition2)
statement2
else if (condition3)
statement3
...
else
statementN
要看看它如何工作,可以调整下嵌套的缩进:
if (condition1)
statement1
else
if (condition2)
statement2
else
if (condition3)
...
要在一个从句中执行多条语句,可使用语句块({ ... })。通常情况下,一直使用语句块是个好习惯,特别是在涉及嵌套if语句的代码中:
if (condition) {
statements1
} else {
statements2
}
不要将原始布尔值的true和false与Boolean对象的真或假混淆。任何一个值,只要它不是 undefined、null、 0、NaN或空字符串(""),那么无论是任何对象,即使是值为假的 Boolean 对象,在条件语句中都为真。例如:
var b = new Boolean(false);
if (b) //表达式的值为 true
if和else if的使用条件:
if可以单独使用,也可以和else块一起使用。
if
{
//something
}
else
{
//something
}
else 必须和if配合使用(或者和if else if 配合使用)
if()
{
//
}else if(){
}else if(){
}
else if必须和if配合使用,最后可跟接else判断
else和else if都是不能独立存在的,需要和if依赖才能成立一个条件
程序的执行点
(1)if 和 else 块:
这种逻辑判断只会走其中的一个块,如果条件成立则进入if不成立则会进入else
if(...){
//如果成立则进入
}else{
//不符合判断条件就会进入else
}
if 和 else if块 else 块:
- 这个和第一条最大的区别是:可以有多个"否则如果"的条件。
- 如果不满足if条件,程序会去else if里面挨着判断。
- 不管是if或者else if里面任意一个满足了之后就会跳出这个逻辑判断(即使后面仍然有待执行的
else if,此时也不会继续走下去),它会尝试走很多语句块,但是一旦找到了一个符合条件的,
就不会再去找。如果把if和else if都走完了,还没有找到符合自己条件的,并且此时语句块中还有
else块,那么程序机会选择进入else块。
if(2>3){
//不会进入
}else if(2>4){
//不会进入,继续查找
}
else if(2>5){
//不会进入,继续查找
}else if(2>1){
//已经符合了条件,不会再去查找,即使后面有else
//也不会进入else块
}
else{
//程序不会进入该语句块
alert('没有一个符合条件的');
}
实例
如果时间小于 10:00,则生成问候 "Good morning",如果时间大于 10:00 小于 20:00,则生成问候 "Good day",否则生成问候 "Good evening":
if (time<10)
{
document.write("<b>早上好</b>");
}
else if (time>=10 && time<20)
{
document.write("<b>今天好</b>");
}
else
{
document.write("<b>晚上好!</b>");
}
x 的结果是:
今天好