Dav*_*vy8 28 javascript short-circuiting
我在jQuery.form.js源代码中看到了这一行:
g && $.event.trigger("ajaxComplete", [xhr, s]);
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是wtf ??
我的下一个想法是,我无法确定这是丑陋还是优雅.
我不是一个Javascript大师,所以我的问题是2倍.首先,我想确认我理解正确.以上行是否相当于:
if (g) {
$.event.trigger("ajaxComplete", [xhr, s]);
}
Run Code Online (Sandbox Code Playgroud)
其次是Javascript中常见/接受的做法?一方面它很简洁,但另一方面,如果你以前没见过它,它可能有点神秘.
dec*_*eze 17
是的,你的两个例子是等价的.它在几乎所有语言中都是这样的,但它在Javascript中变得相当惯用.我个人认为在某些情况下这种情况很好但在其他情况下可能会被滥用.它肯定更短,这对于最小化Javascript加载时间非常重要.
另请参阅有人可以解释John Resig的pretty.js JavaScript是如何工作的吗?
你必须小心,因为如果||条件中有一个短路,可以绕过这个短路:
false && true || true
> true
Run Code Online (Sandbox Code Playgroud)
为避免这种情况,请务必对条件进行分组:
false && (true || true)
> false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8275 次 |
| 最近记录: |