if/else语句

2018-02-22大约7分钟

JavaScript语言里面的值类型和常用的内置对象,是语言构成的最基础的部分。一个有用的程序,只定义变量是无意义的,最重要的是对变量数据逻辑上的处理。

常见的控制语句,有条件判断循环

这里先说常见的if/else语句。

if条件判断

if是用来判断一个变量是否为true的一个常用的关键词。在JavaScript里我们经常需要用比较运算符来进行判断某个表达式的值是truefalse

比较运算符

比较运算符常在条件判断中,常用的比较运算符有:

运算符 作用
== 左操作数是否等于右操作数,必要时会做类型转换
=== 左操作数是否等于右操作数,不会做类型转换
< 左操作数小于右操作数
<= 左操作数小于等于右操作数
> 左操作数大于右操作数
>= 左操作数大于等于右操作数
!= 左操作数不等于右操作数

运算符的优先级,=====!=的优先级最低,其他的比较运算符<<=>>=的优先级相同。

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