Jak zkontrolovat "undefined" v JavaScriptu?

Jaký je nejvhodnější způsob testování, zda je proměnná v jazyce JavaScript nedefinovaná? Viděl jsem několik možných způsobů:

if (window.myVariable)

Nebo

if (typeof(myVariable) != "undefined")

Nebo

if (myVariable) //This throws an error if undefined. Should this be in Try/Catch?

Musíte použít typeof .

if (typeof something != "undefined") {
    // ...
}
Komentáře (7)

Pokud je nedefinovaný, nebude se rovnat řetězci, který obsahuje znaky "undefined", protože řetězec není nedefinovaný.

Můžete zkontrolovat typ proměnné:

if (typeof(something) != "undefined") ...

Někdy ani nemusíte typ kontrolovat. Pokud se hodnota proměnné při jejím nastavení nemůže vyhodnotit jako false (například pokud se jedná o funkci), můžete proměnnou prostě vyhodnotit. Příklad:

if (something) {
  something(param);
}
Komentáře (4)
if (typeof foo == 'undefined') {
 // Do something
};

Všimněte si, že striktní porovnávání (!==) není v tomto případě nutné, protože typeof vždy vrátí řetězec.

Komentáře (6)