Mam kawałek kodu, który testuje istnienie zmiennej, używając instrukcji if, jak przykład poniżej. Muszę zrobić jedną rzecz, jeśli var jest ustawiony, coś innego, jeśli nie jest. W pewnym przypadku testowego, var musiał być ustawiony na 0, ale to samo jest posiadanie unset var w JS, widocznie:JS: sprawdź istnienie var, który jest równy 0
var toMatch;
toMatch = 0;
if (!toMatch) {
document.write("no");
} else {
document.write(toMatch);
}
// html is "no"
Więc mój problem jest, w jaki sposób przetestuj dla var, jeśli jego wartość wynosi zero. Powinienem wskazać, że w mojej funkcji możliwe wartości do przekazania to 0-40 +.
W przeszłości używałem pracy podobnej do ustawiania wartości początkowej na tyle wysoko, że prawdopodobnie nie zostanie ona przekazana do funkcji, ale wydaje mi się, że jest to dla mnie hackey. Czy istnieje lepszy sposób na zrobienie tego?
Zauważ, że 'undefined' nie jest to słowo kluczowe i teoretycznie może być nadpisane. Polecam używając 'if (typeof (toMatch)! ==" undefined ")' lub zamknięcie kodu przez anonimową funkcję z dodatkowym parametrem dla 'undefined'. –
Możesz również wspomnieć o tym, aby sprawdzić istnienie (niekoniecznie określonej wartości), które możesz zrobić: 'if (typeof toMatch! == 'undefined') {};' –
Możesz również użyć '(void 0)' zamiast 'niezdefiniowanej' jeśli jesteś naprawdę paranoikiem :) –