Ποιος είναι ο καταλληλότερος τρόπος για να ελέγξετε αν μια μεταβλητή είναι απροσδιόριστη στη JavaScript; Έχω δει διάφορους πιθανούς τρόπους:
if (window.myVariable)
Ή
if (typeof(myVariable) != "undefined")
Ή
if (myVariable) //This throws an error if undefined. Should this be in Try/Catch?
Πρέπει να χρησιμοποιήσετε το typeof
.
if (typeof something != "undefined") {
// ...
}
Αν είναι απροσδιόριστο, δεν θα είναι ίσο με ένα αλφαριθμητικό που περιέχει τους χαρακτήρες "undefined", καθώς το αλφαριθμητικό δεν είναι απροσδιόριστο.
Μπορείτε να ελέγξετε τον τύπο της μεταβλητής:
if (typeof(something) != "undefined") ...
Μερικές φορές δεν χρειάζεται καν να ελέγξετε τον τύπο. Αν η τιμή της μεταβλητής δεν μπορεί να αποτιμηθεί σε false όταν οριστεί (για παράδειγμα αν πρόκειται για συνάρτηση), τότε μπορείτε απλά να αξιολογήσετε τη μεταβλητή. Παράδειγμα:
if (something) {
something(param);
}
if (typeof foo == 'undefined') {
// Do something
};
Σημειώστε ότι η αυστηρή σύγκριση (!==
) δεν είναι απαραίτητη σε αυτή την περίπτωση, αφού η typeof
θα επιστρέφει πάντα μια συμβολοσειρά.