所以,我团队的一名初级程序员今天编写了以下代码:
if(status === ("incomplete" || "unknown"))
Run Code Online (Sandbox Code Playgroud)
这显然不会按照他的意图去做,这是:
if(status === "incomplete" || status === "unknown"))
Run Code Online (Sandbox Code Playgroud)
但我无法解释的是,为什么第一段代码无法正常工作!或者,如果'status'设置为'incomplete',则为什么评估为true;如果设置为'unknown',则为false
Jer*_*man 20
在JavaScript中,||如果计算结果为操作员返回其第一操作数true(即,它不是false,null,undefined,"",或0),并且它的第二个操作数,否则.
在第一种情况下,("incomplete" || "unknown")始终求值为"incomplete",因为它的计算结果为true.
整个条件变为:
if (status === "incomplete")
Run Code Online (Sandbox Code Playgroud)
这解释了您正在观察的行为.
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |