checking a variable value using an OR operator

后端 未结 3 1591
野的像风
野的像风 2021-01-11 10:55

So, a junior programmer on my team today wrote the following piece of code:

if(status === (\"incomplete\" || \"unknown\"))

Which is obvious

3条回答
  •  情歌与酒
    2021-01-11 11:51

    But what I can't explain is why exactly status === ("incomplete" || "unknown") wouldn't work

    That's because the expression in the parenthesis is evaluated first. The non-empty string incomplete is truthy, so the OR-expression ("incomplete" || "unknown") yields "incomplete" and only that is then compared with your status variable.

    To shorten the condition, there are many ways including arrays of values, regular expression test etc.

提交回复
热议问题