javascript 如何在父if条件和单个if条件中形成嵌套的三元语句

xkftehaa  于 5个月前  发布在  Java
关注(0)|答案(1)|浏览(47)
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";
}

嵌套的if else语句可以使用哪种翻译,为什么?

xwmevbvl

xwmevbvl1#

第一个可以转换为没有else语句的一个,因为之前的return语句(early return patternShould a function have only one return statement?):

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";

相关问题