系列
JavaScript教程
if/else语句
2018-02-22大约7分钟
JavaScript语言里面的值类型和常用的内置对象,是语言构成的最基础的部分。一个有用的程序,只定义变量是无意义的,最重要的是对变量数据逻辑上的处理。
常见的控制语句,有条件判断和循环。
这里先说常见的if/else
语句。
if条件判断
if
是用来判断一个变量是否为true
的一个常用的关键词。在JavaScript里我们经常需要用比较运算符来进行判断某个表达式的值是true
或false
。
比较运算符
比较运算符常在条件判断中,常用的比较运算符有:
运算符 | 作用 |
---|---|
== | 左操作数是否等于右操作数,必要时会做类型转换 |
=== | 左操作数是否等于右操作数,不会做类型转换 |
< | 左操作数小于右操作数 |
<= | 左操作数小于等于右操作数 |
> | 左操作数大于右操作数 |
>= | 左操作数大于等于右操作数 |
!= | 左操作数不等于右操作数 |
运算符的优先级,==
、===
和!=
的优先级最低,其他的比较运算符<
、<=
、>
、>=
的优先级相同。
if语句
几乎每个程序都会用到if
语句。比如很多人都会想: “如果我有钱了,我就会很幸福”。写成代码是这样子:
const rich = true;
let happy;
if (rich === true) { // ()里面的是测试条件,true则执行{}里面的代码
happy = true;
}
console.log(`Happy: ${happy}`);
{}
在JavaScript中表示一个代码块,上面的例子每个代码块只有一条语句,因此也可以这么写:
const rich = true;
let happy;
if (rich === true)
happy = true;
console.log(`Happy: ${happy}`);
上面用{}的方式和不用{}的方式哪种写法方式更好?
一个特别易犯的错误是,在if语句中执行一个代码块时忘记使用大括号,因此if语句仅执行后面的第一条语句,后面的语句无论测试条件如何,总是会执行。
所以,为了避免这种错误,哪怕只有一条语句,总是使用大括号是一个好习惯。
所以,为了避免这种错误,哪怕只有一条语句,总是使用大括号是一个好习惯。
else和else if语句
更复杂的情况是,测试条件满足时,执行一段代码,不满足时,也想执行一段代码,这时候,可以用if
...else
语句
const rich = true;
let happy;
if (rich === true) { // ()里面的是测试条件,true则执行{}里面的代码
happy = true;
} else { // 如果测试条件是false, 则执行下面{}中的代码
happy = false;
}
console.log(`Happy: ${happy}`);
如果有更多的测试条件希望判断,则可以和else if
一起使用。
const age = 25;
if (age >= 0 && age < 10) {
console.log("年龄在0和10之间。");
} else if (age >= 10 && age < 20) {
console.log("年龄在10和20之间。");
} else if (age >= 20 && age < 30) {
console.log("年龄在20和30之间。");
} else if (age >= 30 && age < 40) {
console.log("年龄在30和40之间。");
}
特殊的测试条件
这段代码的执行结果时什么?
const value = "";
if (value) {
console.log("true");
} else {
console.log("false");
}
对于非布尔类型的数据,不用比较运算符,也是可以用在if
语句中的。
常见的一些值,都是假的:
- 空字符串
- 0
- null
- undefined
所以上面代码的输出是false
。