我在 JQuery 站点上发现了未知的代码构造。经过一些格式化后,它看起来像:
function (a,c) {
c==null && (c=a,a=null);
return arguments.length>0
? this.bind(b,a,c)
: this.trigger(b)
}
函数的第一行是什么意思?有什么技巧或标准的JS代码构造吗?
我在 JQuery 站点上发现了未知的代码构造。经过一些格式化后,它看起来像:
function (a,c) {
c==null && (c=a,a=null);
return arguments.length>0
? this.bind(b,a,c)
: this.trigger(b)
}
函数的第一行是什么意思?有什么技巧或标准的JS代码构造吗?
这是一个使用布尔短路评估的技巧,如果第一个评估为真,则只执行后半部分。Perl 通常有这个:
<something> or die
如果第一条语句失败,则程序结束。
读作
if (c == null) { c = a; a = null; }
这是一种丑陋的写作方式
if(c==null) {
c = a;
a = null;
}
这利用了这样一个事实,即&&
当且仅当第一部分的计算结果为真时,才会执行boolean 的第二部分。