我知道我在此表达式中使用的优先级:
if (typeof day === "undefined" || notifiedday !== weekday) //do something
=== 10
|| 5
!== 10
我知道在C ++的在代码执行过程中此表达式将工作是这样的:
if (typeof day === "undefined")
{
if(notifiedday !== weekday)
{
//do something
}
}
我仍然不知道如何做到这一点在JavaScript中运行时的工作。
答案 0 :(得分:0)
当结果清晰时比较结束。
if (false && true) { } //true won't be evaluated since the left side of the operation gave the final result
if (true || false) { } //false won't be evaluated since the left side of the operation gave the final result
对于多条语句,它的作用相同
if (false || (false && true)) { } // both falses are evaluated, the true won't be.
答案 1 :(得分:0)
它在JS中的工作原理与在C ++中的相同。尽管您添加到问题中的示例是错误的,但应该是:
if (typeof day === "undefined"){ // do something }
else if(notifiedday !== weekday){ // do same thing }
您写的东西很有趣
if (typeof day === "undefined" && notifiedday !== weekday){ //do something }
if(typeof day === "undefined" || notifiedday !== weekday)
由于使用或,因此表达式为真时只需其中之一为真。因此,如果typeof day === "undefined"
为true,则不需要检查notifiedday !== weekday
,但是如果typeof day === "undefined"
为false,则需要检查两个项目。
if(typeof day === "undefined" && notifiedday !== weekday)
由于和一起使用,因此两个表达式都必须为真。所以,如果typeof day === "undefined"
为假,则notifiedday !== weekday
并不需要进行检查,因为and
同时需要的,但如果typeof day === "undefined"
为真,则需要检查这两个项目。>