&& operator in Javascript

16,780

Solution 1

&& makes sure that the Bootloader function/object exists before calling the done method on it. The code takes advantage of boolean short circuiting to ensure the first expression evaluates to true before executing the second. See the short-circuit evaluation wikipedia entry for a more in-depth explanation.

Solution 2

window.Bootloader && Bootloader.done(["pQ27\/"]);

it is equivalent to:

if(window.Bootloader) {
  Bootloader.done(["pQ27\/"]);
}

Solution 3

&& is an AND operator, just like most everywhere else. There is really nothing fancy about it.

Most languages, JavaScript included, will stop evaluating an AND operator if the first operand is false.

In this case, if window.Bootloader does not exist, it will be undef, which evaluates to false, so JavaScript will skip the second part.

If it is true, it continues and calls Bootloader.done(...).

Think of it as a shortcut for if(window.Bootloader) { Bootloader.done(...) }

Solution 4

also && operator returns the first encountered value of this kind: null, undefined, 0, false, NaN, ""

ex: if

var1 = 33
var2 = 0 
var3 = 45

var1 && var2 && var3
returns 0
Share:
16,780

Related videos on Youtube

Zar
Author by

Zar

Updated on June 04, 2022

Comments

  • Zar
    Zar almost 2 years

    While looking through some code (javascript), I found this piece of code:

    <script>window.Bootloader && Bootloader.done(["pQ27\/"]);</script>
    

    What I don't understand is what the && is doing there, the code is from Facebook and is obviously minified and/or obfuscated, but it still does the same thing.

    tl;dr: What does the && operator do here?

  • calebds
    calebds over 12 years
    There are no classes in JavaScript. Bootloader would be a function or object
  • RobG
    RobG over 12 years
    It does not "make sure" Bootloader is either a function or an object, it just tests if the window object has a Bootloader property whose value is truthy. If so, it then assumes that it is callable.