javascript中的以下逻辑if或语句有什么问题?

Mic*_*ael 2 javascript

我是javascript的新手,它必须非常基础:

if (controllerName === ('about' || 'contact' || 'lessons')) {
        res.render(controllerName + '.ejs', locals);
    }
Run Code Online (Sandbox Code Playgroud)

只有当controllerName=='about'我进去时,其余的情况我都没有.

在这种情况下如何操作or===操作?

Div*_*com 7

你的结构不正确.修复就是

if (controllerName == 'about' || controllerName == 'contact' || controllerName == 'lessons') {
    res.render(controllerName + '.ejs', locals);
}
Run Code Online (Sandbox Code Playgroud)

问题是('about' || 'contact' || 'lessons')评估为,about因为它是集合中的第一个非(null/undefined)值.您似乎想要与controllerName所有三个值进行比较,因此请注意我的代码版本如何controllerName与所有三个值分别进行比较.


Bri*_*tas 5

更简洁的修复可以使用正则表达式:

if (/^(about|contact|lessons)$/.test(controllerName)) { ... }
Run Code Online (Sandbox Code Playgroud)