请问这是什么意思:
if (a && b == c){};
我不理解这个条件语句的逻辑。
if (a && b == c){};
我不理解这个条件语句的逻辑。
&&
的优先级低于==
,因此它等效于:
if (a && (b == c))
a
是真值,并且b
的值等于c
的值。(a && b == c)
包含两个 运算符。逻辑与运算符和相等运算符。foo && bar
当且仅当操作数 foo
和 bar
都有 真值 时返回 true。
foo == bar
当且仅当 foo
等于 bar
时返回 true。
如果一个表达式包含多个运算符,则运算符优先级至关重要。如果两个操作数的类型不同,相等运算符会将它们转换为相同的类型,然后进行严格比较。如果两个操作数都是对象,则 JavaScript 比较内部引用,当操作数在内存中引用同一个对象时它们是相等的。
运算符优先级决定了运算符相对于其他运算符的解析方式。具有较高优先级的运算符成为具有较低优先级的运算符的操作数。
==
运算符的优先级高于 &&
运算符。因此,上述条件将首先检查 b == c
。如果结果为 true
并且 a
的值为真值,条件的结果将为 true
。( )
具有最高的优先级,因此可以用于强制执行特定的操作顺序。(a && (b == c))
(a && b == c)