Zar*_*Zar 17 javascript operators
在查看一些代码(javascript)时,我发现了这段代码:
<script>window.Bootloader && Bootloader.done(["pQ27\/"]);</script>
Run Code Online (Sandbox Code Playgroud)
我不明白的&&是在那里做的是什么,代码来自Facebook,显然是缩小和/或混淆,但它仍然做同样的事情.
tl;博士:&&运营商在这做什么?
ijs*_*jse 18
window.Bootloader && Bootloader.done(["pQ27\/"]);
Run Code Online (Sandbox Code Playgroud)
它相当于:
if(window.Bootloader) {
Bootloader.done(["pQ27\/"]);
}
Run Code Online (Sandbox Code Playgroud)
&&是一个AND运营商,就像大多数其他地方一样.真的没什么好看的.
AND如果第一个操作数为false ,大多数语言(包括JavaScript)将停止评估运算符.
在这种情况下,如果window.Bootloader不存在,它将是undef,其评估为false,因此JavaScript将跳过第二部分.
如果是真的,它会继续并调用Bootloader.done(...).
把它想象成一条捷径 if(window.Bootloader) { Bootloader.done(...) }