While trying to learn JavaScript I came across a few snippets of code that has confused me.
My original code that I was messing around with was:
var username = prompt("Choose a username:"); if (username === null) { alert("Username is required!"); } else { console.log("Your username is: " + username); }
http://stackoverflow.com/questions/2647867/how-to-determine-if-variable-is-undefined-or-null http://stackoverflow.com/questions/2647867/how-to-determine-if-variable-is-undefined-or-null
The first solution that has 910 upvotes uses typeof, but this didn t work for me:
var username = prompt("Choose a username:"); if (typeof username === undefined ){ alert("Username is required!"); } else { console.log("Your username is: " + username); }
It also states a shorter version, which did work for me:
var username = prompt("Choose a username:"); if (!username){ alert("Username is required!"); } else { console.log("Your username is: " + username); }
Another answer caught my eye as it included a part of my personal code username === null, which has 319 upvotes, but this didn t work for me either:
var username = prompt("Choose a username:"); if (username === undefined || username === null) { alert("Username is required!"); } else { console.log("Your username is: " + username); }
An edit to the answer also states that using just username === null is sufficient.
So my question is why does !username work with that specific code but the others did not?