Wednesday, 9 May 2018

JavaScript check if variable exists (is defined/initialized)



Which method of checking if a variable has been initialized is better/correct?
(Assuming the variable could hold anything (string, int, object, function, etc.))



if (elem) { // or !elem



or



if (typeof(elem) !== 'undefined') {


or



if (elem != null) {


Answer



The typeof operator will check if the variable is really undefined.



if (typeof variable === 'undefined') {
// variable is undefined
}


The typeof operator, unlike the other operators, doesn't throw a ReferenceError exception when used with an undeclared variable.




However, do note that typeof null will return "object". We have to be careful to avoid the mistake of initializing a variable to null. To be safe, this is what we could use instead:



if (typeof variable === 'undefined' || variable === null) {
// variable is undefined or null
}





For more info on using strict comparison === instead of simple equality ==, see:
Which equals operator (== vs ===) should be used in JavaScript comparisons?



No comments:

Post a Comment

casting - Why wasn't Tobey Maguire in The Amazing Spider-Man? - Movies & TV

In the Spider-Man franchise, Tobey Maguire is an outstanding performer as a Spider-Man and also reprised his role in the sequels Spider-Man...