How to check for undefined in JavaScript



How to check for undefined in JavaScript

window.setTimeout = function () {      alert("Got you now!");  };  

Bottom line, the "it can be redefined" argument to not use a raw === undefined is bogus.

If you are still concerned, there are two ways to check if a value is undefined even if the global undefined has been overwritten.

You can use the void operator to obtain the value of undefined. This will work even if the global window.undefined value has been over-written:

if (name === void(0)) {...}  

The zero in this example doesn't have any special meaning, you could just as well use 1 or function(){}. void(anything) will always evaluate to undefined.

Alternatively, you can use the typeof operator to safely check if a value was assigned. Instead of comparing to the global undefined value you check if the value's type is "undefined":

if (typeof name === "undefined") {...}  

Note that this is slightly different from the previous options. Even if name wasn't declared typeof would still say it's undefined. If you compared an undeclared variable to undefined or void(0) you would instead get a ReferenceError.


Read full article from How to check for undefined in JavaScript


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts