Oth*_*ani 4 javascript logical-operators
请问这是什么意思:
if (a && b == c){};
Run Code Online (Sandbox Code Playgroud)
我不明白条件陈述的逻辑
&&具有比更低的优先级==,因此它等效于:
if (a && (b == c))
Run Code Online (Sandbox Code Playgroud)
这意味着如果a具有真实值,并且的值b也等于的值c。
该条件(a && b == c)有两个运算符。逻辑与运算符和等于运算符。
如果两个操作数和都有真值,则该运算foo && bar返回 true 。foobar
foo == barfoo如果等于则返回 true bar。
如果操作数不是同一类型,则相等运算符会对其进行转换,然后应用严格比较。如果两个操作数都是对象,那么当操作数引用内存中的同一对象时,JavaScript 会比较内部引用是否相等。
如果表达式包含多个运算符,则运算符优先级至关重要。
运算符优先级决定了运算符之间相互解析的方式。优先级较高的运算符成为优先级较低的运算符的操作数。
运算符==的优先级高于运算符&&。因此将首先检查上述条件b == c。如果结果为true且 的值为a真,则条件的结果将为true。
分组运算符( )具有最高优先级,因此可用于强制执行特定的操作顺序。
如果您不确定操作的处理顺序,请使用分组运算符!
的结果
(a && (b == c))
Run Code Online (Sandbox Code Playgroud)
将与以下结果相同
(a && b == c)
Run Code Online (Sandbox Code Playgroud)
但可读性更好。当然,您应该学习并了解运算符的优先级。但是,如果有疑问,尤其是在包含大量运算符的真正毛茸茸的行中,几个括号增加可读性的价值可以轻松超过几位附加代码的成本。
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |