if语句中的OR逻辑运算符在falsey时返回truthy

时间:2016-07-07 22:13:51

标签: javascript if-statement conditional

function doesItStartWithJ (name) {
    if(name.charAt(0) === "J" || "j") {
        return "Hello " + name + "!";
    } else {
        return "Who are you?";
    }
}

我试图使用上面的代码来解决问题,但是在使用小写名称的测试用例中不断出现错误,并且发现我必须修复if条件以使代码工作,因此:

function doesItStartWithJ (name) {
    if(name.charAt(0) === "J" || name.charAt(0) === "j") {
        return "Hello " + name + "!";
    } else {
        return "Who are you?";
    }
}

我认为我必须再次使用charAt方法来处理小写的情况。 为什么这不起作用

name.charAt(0) === "J" || "j"

但可以使用

name.charAt(0) === "J" || name.charAt(0) === "j"

???

1 个答案:

答案 0 :(得分:0)

您可以使用toLowerCase

function doesItStartWithJ (name) {
    //Will cover "J" and "j"
    if(name.charAt(0).toLowerCase() === "j") {
        return "Hello " + name + "!";
    } else {
        return "Who are you?";
    }
}