Ho un pezzo di codice che verifica l'esistenza di una variabile, utilizzando un'istruzione if come nell'esempio seguente. Ho bisogno di fare una cosa se la var è impostata, una cosa diversa se non è così. In un certo banco di prova, il var doveva essere impostato a 0, ma che è la stessa sta avendo un var impostata in JS, a quanto pare:JS: verifica l'esistenza di una var uguale a 0
var toMatch;
toMatch = 0;
if (!toMatch) {
document.write("no");
} else {
document.write(toMatch);
}
// html is "no"
Quindi il mio problema è, come faccio prova per una var se il suo valore è legittimamente zero. Dovrei sottolineare che nella mia funzione i valori possibili da passare sono 0-40 +.
In passato ho usato un aggiramento come impostare il valore iniziale su un numero abbastanza alto da non poter essere passato alla funzione ma a me sembra un hacker. C'è un modo migliore per farlo?
Si noti che 'undefined' non è una parola chiave e può essere teoricamente sovrascritto. Consiglia di usare 'if (typeof (toMatch)! ==" undefined ")' o chiudere il codice su una funzione anonima con un parametro extra per 'undefined'. –
Si potrebbe anche voler dire che per verificare esistenza (non necessariamente un valore specifico) si potrebbe fare: 'if (typeof toMatch! == 'undefined') {};' –
Puoi anche usare '(void 0)' invece di 'indefinito' se sei veramente paranoico :) –