【问题标题】:Or operator not working in IF statement Node.js或运算符在 IF 语句 Node.js 中不起作用
【发布时间】:2015-10-12 20:26:58
【问题描述】:

我最初在 node.js 中有一条路由声明:

如果 req.url === 某事或某事或某事或某事,则执行此操作,否则执行此操作。

问题是即使不满足 if 条件,else 语句也从未执行过。无论如何只执行 if 语句

我已经将我的路线分解到最低限度,试图找出问题所在。我将其简化为:

app.get('/test', function(req,res) {

        var category = 'stupid3';

        if(category === 'stupid' || 'stupid2') {

            res.end('yup');

        } else {

            res.end('nope');

        }

});

我做错了什么?

为什么else语句不执行?

【问题讨论】:

标签: javascript node.js


【解决方案1】:

你用错了。

category === 'stupid' || category === 'stupid2'

你的版本是有效的......

 (category === 'stupid') || 'stupid2'

...所以因为非空字符串是“真实的”,RHS 将始终导致 || 通过。

【讨论】:

  • 这里的教训是确保在开始使用 node.js 之前了解 javascript #embarrassed
【解决方案2】:

else 语句永远不会执行,因为您的 if 条件总是返回 true..

if (category === 'stupid' || 'stupid2') {

条件的第二部分,即|| 运算符之后是'stupid2,这是一个真实值

【讨论】:

    猜你喜欢
    • 2020-03-13
    • 2021-07-28
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 2013-04-30
    相关资源
    最近更新 更多