我在调试器监视中有两个表达式(同时):
item.isSelected() === true
:false
同时:
(item.isSelected() === true) && !(item.workflowStatusCode.toUpperCase() === "INRV") && (item.productStatusCode.toUpperCase() !== "ACTV") || (item.workflowStatusCode.toUpperCase() === "INPR")
:true
为什么当第一个为假时第二个评估为真?
添加:
从这里
短路评估
由于逻辑表达式是从左到右评估的,因此使用以下规则测试它们是否存在可能的“短路”评估:
false && 任何东西都被短路评估为 false。
...这有点暗示,一旦对第一个表达式进行评估,false
其余的就应该被跳过...我仍然不清楚这一切背后的规则是什么。