缺少参数 &&&||括号中的运算符,但仍在工作
argument missing && || operators in parenthesis but still working
我遇到过这段代码,其中if语句包含一个没有&&
和/或||
运算符的参数。
if (event.target.scrollTop > 0 !== isViewScrolled) {
//do something
}
这怎么可能呢?括号中包含的逻辑是什么?
(event.target.scrollTop > 0
返回一个布尔值,所以javascript只检查这个布尔值是否等于isViewScrolled
检查运算符优先级 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
根据上述>
(大于(的优先级高于!=
(不等式(,因此
event.target.scrollTop > 0 !== isViewScrolled
相当于
(event.target.scrollTop > 0) !== isViewScrolled
尽管两者是等效的,但最好在评估顺序不明确的地方包含括号。
相关文章:
- Meteor:Tracker.autorun/observerChanges&集合未按预期工作
- Dropdown不会't工作手机浏览器&Firefox
- YouTube暂停,播放&停止不工作
- replaceWith&fadeIn/fadeOut-悬停后无法工作
- 什么是完美的工作流程来处理A,B和amp;其中A取决于B,B取决于C
- Rails页面JS可以在真正的浏览器/手动测试中工作,但不能在PhantomJS&硒规格
- JavaScript工作,直到我添加这个&&陈述
- javascript&&不会'我不在wordpresspost工作
- ng隐藏&ng显示不能仅在特定的AngularJS页面中工作
- jquery:制作按钮click&json调用一起工作,但保持它们分离
- &操作员未在指令的隔离范围内工作
- Skrollr&相对模式无法工作
- 我如何使计时器启动&只有当onFocus为true时才能工作
- 不工作mousemove&mouseleave in(倾斜图像)
- Javascript全局变量不工作&更多
- 相位器:tilemap&set根本不工作
- AngularJS&PrerenderIO,prerenderReady不是't工作
- 滚动到不在Chrome中工作&歌剧
- PHP&JavaScript:不工作的第二个脚本
- 是(“可见”)&.是(“:可见”)以不同的方式工作