跳转到主要内容
模块 1 · 第 4 课(共 4)课程中的4/32~10 min
模块课程(4/4)

条件:if、else、三元

程序几乎永远不会沿直线运行其所有指令。它 必须不断决定:如果价格低于阈值,则应用 折扣;如果用户已登录,则显示面板;否则显示 登录。用于做出决策的指令称为条件。

if / else

基本形式是if (condition) { … } else { … }:

JS
const eta = 20;

if (eta >= 18) {
  console.log('Maggiorenne');
} else {
  console.log('Minorenne');
}

评估括号之间的条件;如果它是“真实的”(在 JS 中 术语)执行第一个块,否则执行第二个块。

else if 链

当有两种以上的情况时,它们用 else if 链接:

JS
const punti = 87;
if (punti >= 90) {
  console.log('Eccellente');
} else if (punti >= 70) {
  console.log('Buono');
} else if (punti >= 50) {
  console.log('Sufficiente');
} else {
  console.log('Da migliorare');
}

仅执行第一个匹配的分支。

真实与虚假

JS 认为六个值是“假”:false、0、''(空字符串)、null、 undefined、NaN。 其他一切都是真实的 - 甚至 '0'、'false' 和空数组 []。

JS
if ('0') console.log('arriva qui'); // 'arriva qui'
if ([]) console.log('e anche qui'); // 'e anche qui'
if (0) console.log('mai'); // (mai)

三元运算符 cond ? a : b

当 if/else 只产生一个值时, 三元 将其表示为 单行并且通常更具可读性:

JS
const eta = 20;
const stato = eta >= 18 ? 'adulto' : 'minorenne';

尝试一下

锻炼#js.m1.l4.e1
尝试:0加载中...

给定从 0 到 10 的等级,如果等级 >= 6,则返回“promosso”,否则返回“bocciato”。最后一个表达式的计算结果必须为“promosso”,等级 = 7。

正在加载编辑器...
显示提示

使用三元 `cond ? a : b` 作为最后一个表达式。

3 次尝试后可用的解决方案

复习练习

锻炼#js.m1.l4.e2
尝试:0加载中...

对温度进行分类:如果 >= 25,则为“caldo”;如果 >= 15,则为“tiepido”;否则为“freddo”。当“t = 20”时,预期结果是“tiepido”。

正在加载编辑器...
显示提示

您可以嵌套三元: `a >= 25 ? “卡尔多”:a >= 15 ? 'tiepido':'弗雷多'`。

3 次尝试后可用的解决方案