或者运算符不在IF语句Node.js中工作

时间:2015-10-12 20:26:59

标签: javascript node.js

我最初在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语句?

2 个答案:

答案 0 :(得分:9)

您使用不当。

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

您的版本是有效的......

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

...因为非空字符串是" truthy",RHS将始终导致||通过。

答案 1 :(得分:1)

从不执行else语句,因为if条件总是返回true ..

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

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