导航菜单
首页 >  HTML HTML IF 语句  > 条件分支:if 和 '?'

条件分支:if 和 '?'

有时我们需要根据不同条件执行不同的操作。

我们可以使用 if 语句和条件运算符 ?(也称为“问号”运算符)来实现。

“if” 语句

if(...) 语句计算括号里的条件表达式,如果计算结果是 true,就会执行对应的代码块。

例如:

let year = prompt('In which year was ECMAScript-2015 specification published?', '');if (year == 2015) alert( 'You are right!' );

在上面这个例子中,条件是一个简单的相等性检查(year == 2015),但它还可以更复杂。

如果有多个语句要执行,我们必须将要执行的代码块封装在大括号内:

if (year == 2015) { alert( "That's correct!" ); alert( "You're so smart!" );}

建议每次使用 if 语句都用大括号 {} 来包装代码块,即使只有一条语句。这样可以提高代码可读性。

布尔转换

if (…) 语句会计算圆括号内的表达式,并将计算结果转换为布尔型。

让我们回顾一下 类型转换 一章中的转换规则:

数字 0、空字符串 ""、null、undefined 和 NaN 都会被转换成 false。因为它们被称为“假值(falsy)”。其他值被转换为 true,所以它们被称为“真值(truthy)”。

所以,下面这个条件下的代码永远不会执行:

if (0) { // 0 是假值(falsy) ...}

……但下面的条件 —— 始终有效:

if (1) { // 1 是真值(truthy) ...}

我们也可以将预先计算的布尔值传入 if 语句,像这样:

let cond = (year == 2015); // 相等运算符的结果是 true 或 falseif (cond) { ...} “else” 语句

if 语句有时会包含一个可选的 “else” 块。如果判断条件不成立,就会执行它内部的代码。

例如:

let year = prompt('In which year was ECMAScript-2015 specification published?', '');if (year == 2015) { alert( 'You guessed it right!' );} else { alert( 'How can you be so wrong?' ); // 2015 以外的任何值} 多个条件:“else if”

有时我们需要测试一个条件的几个变体。我们可以通过使用 else if 子句实现。

例如:

let year = prompt('In which year was ECMAScript-2015 specification published?', '');if (year < 2015) { alert( 'Too early...' );} else if (year > 2015) { alert( 'Too late' );} else { alert( 'Exactly!' );}

在上面的代码中,JavaScript 先检查 year < 2015。如果条件不符合,就会转到下一个条件 year > 2015。如果这个条件也不符合,则会显示最后一个 alert。

可以有

相关推荐: