javascript – “if(fn)fn()”或“fn \u0026\u0026 fn()”[复制]

前端之家收集整理的这篇文章主要介绍了javascript – “if(fn)fn()”或“fn \u0026\u0026 fn()”[复制]前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > JavaScript idiom: !something && function()5个
我见过很多次fn&& fn()是if(fn)fn()的优化.

我的问题是:为什么?并且,两种解决方案的生成代码是什么?

解决方法

和&& JavaScript中的运算符是短路的,这意味着如果左侧是假的,则根本不评估右侧.这就是为什么fn&&即使fn为falsey(null,undefined等),fn()也是安全的.

生成代码”完全取决于JavaScript引擎,但我希望它在两种情况下都非常相似(&&和if).

从运行速度更快的角度来看,这不是一种“优化”,而是在写作时间较短的意义上(特别是如果像我一样,如果语句你永远不会离开{}).对于不熟悉该语言的人来说,它的缺点是稍微不那么清楚,但这是一个很快习惯的成语.

原文链接:https://www.f2er.com/js/156077.html

猜你在找的JavaScript相关文章