let soup = "abc";
let customerBanned = false;

let result = customerBanned ? "no soup" : soup ? `good ${soup} soup` : "bad soup";

我已将上述三元声明翻译如下:

if (customerBanned) {
    return "no soup";
}
else {
    if (soup) {
        return `good ${soup} soup`;
    }
    else {
        "bad soup";
    }   
}

但是下面类似的三元语句将导致不同的If Else条件.

let myScore = 79;
let myGrade = myScore > 80 ? "A" : myScore > 60 ? "B" : myScore > 50 ? "C" : "D"; 

以下是我的翻译:

if(myScore > 80) {
    return "A";
}
else if(myScore > 60) {
    return "B";
}
else if(myScore > 50) {
    return "C";
}
else {
    return "D";
}

Which translation can be used for nested if else statements and why?

推荐答案

由于前面的return条语句(early return pattern,Should a function have only one return statement?),第一条语句可以翻译成没有else条语句的语句:

if (customerBanned) return "no soup";
if (soup) return `good ${soup} soup`;
return "bad soup";

第二个:

if (myScore > 80) return "A";
if (myScore > 60) return "B";
if (myScore > 50) return "C";
return "D";

Javascript相关问答推荐

JS、C++和C#给出不同的Base 64 Guid编码结果

对象和数字减法会抵消浏览器js中的数字

是否有方法在OpenWeatherMap API中获取过go 的降水数据?

zoom svg以适应圆

点击按钮一次有文本出现和褪色,而不是点击两次?(html,CSS,JavaScript)

如何将多维数组插入到另一个多维数组中?

React.Development.js和未捕获的ReferenceError:未定义useState

同一类的所有div';S的模式窗口

从另一个数组中的对应行/键值对更新数组中的键值对对象

是否可以在Photoshop CC中zoom 路径项?

为什么云存储中的文件不能公开使用?

无法读取未定义的属性(正在读取合并)-react RTK

有没有一种直接的方法可以深度嵌套在一个JavaScript对象中?

在Vercel中部署Next.js项目时获取`ReferenceError:未定义文档`

如何组合Multer上传?

如果对象中的字段等于某个值,则从数组列表中删除对象

MUI迷你图:如何将$符号添加到MUI迷你图中的工具提示数据

更改管线时不渲染组件的react

REACT-本机错误:错误类型错误:无法读取未定义的容器的属性

JS/css:将数字输入的S函数和可调整大小的元素S函数绑定在一起