JS 中布尔运算符的优先顺序是什么?
e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0)
这个表达式将如何计算?
e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0)
how would this expression evaluate?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在 MDN 上找到 Javascript 运算符的优先级表:https://developer。 mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence。一般来说,它是 Javascript 文档的重要来源。
无论如何,
&&
的优先级高于||
,因此a &&乙|| c || d
相当于(((a && b) || c) || d)
。这与许多其他具有 C 风格语法的语言类似。You can find a precedence table for Javascript operators on MDN: https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence. It is a great source for Javascript documentation in general.
Anyway,
&&
has higher precedence than||
soa && b || c || d
is equivalent to(((a && b) || c) || d)
. This is similar to many other language with a C-inspired syntax.