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