[英]Does operator precedence matter for && and == in javascrtipt?
更具體地說,在語句中是否存在一組值(a,b和c)與運算符的優先級有關:
var value = (a && b == c);
(NaN除外)。
是
js> false && true == false
false
js> (false && true) == false
true
由於==
優先級高於&&
,因此第一個優先級被解析為false && (true == false)
,等效於false && false
,因此計算為false
。 第二個等效於false == false
,這是true
對該語言進行了解析,使您的陳述等同於(a && (b == c))
。 等於運算符將始終在&&
, ||
之前運行 和其他邏輯運算符。 您可以在這里找到細節。
對。 ==
綁定比&&
綁定更緊密,因此您綁定的內容為
var val = a && ( b == c)
看這里 。 因此a==0
, b==1
且c==0
為假,而(a&&b)==c
為真。
(錯別字。該死。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.