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

Wee*_*Wee 1 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');

        }

});
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

为什么不会执行else语句?

小智 10

您使用不当.

category === 'stupid' || category === 'stupid2'
Run Code Online (Sandbox Code Playgroud)

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

 (category === 'stupid') || 'stupid2'
Run Code Online (Sandbox Code Playgroud)

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

  • 这里的教训是确保您在开始使用 node.js 之前了解 javascript #embarrassed (2认同)