参见英文答案 >
JavaScript idiom: !something && function()5个
我见过很多次fn&& fn()是if(fn)fn()的优化.
我见过很多次fn&& fn()是if(fn)fn()的优化.
解决方法
@H_502_8@ 和&& JavaScript中的运算符是短路的,这意味着如果左侧是假的,则根本不评估右侧.这就是为什么fn&&即使fn为falsey(null,undefined等),fn()也是安全的.“生成的代码”完全取决于JavaScript引擎,但我希望它在两种情况下都非常相似(&&和if).
从运行速度更快的角度来看,这不是一种“优化”,而是在写作时间较短的意义上(特别是如果像我一样,如果语句你永远不会离开{}).对于不熟悉该语言的人来说,它的缺点是稍微不那么清楚,但这是一个很快习惯的成语.