Checking Something IsEmpty In Javascript?
Answer :
If you're testing for an empty string:
if(myVar === ''){ // do stuff };
If you're checking for a variable that has been declared, but not defined:
if(myVar === null){ // do stuff };
If you're checking for a variable that may not be defined:
if(myVar === undefined){ // do stuff };
If you're checking both i.e, either variable is null or undefined:
if(myVar == null){ // do stuff };
This is a bigger question than you think. Variables can empty in a lot of ways. Kinda depends on what you need to know.
// quick and dirty will be true for '', null, undefined, 0, NaN and false. if (!x) // test for null OR undefined if (x == null) // test for undefined OR null if (x == undefined) // test for undefined if (x === undefined) // or safer test for undefined since the variable undefined can be set causing tests against it to fail. if (typeof x == 'undefined') // test for empty string if (x === '') // if you know its an array if (x.length == 0) // or if (!x.length) // BONUS test for empty object var empty = true, fld; for (fld in x) { empty = false; break; }
This should cover all cases:
function empty( val ) { // test results //--------------- // [] true, empty array // {} true, empty object // null true // undefined true // "" true, empty string // '' true, empty string // 0 false, number // true false, boolean // false false, boolean // Date false // function false if (val === undefined) return true; if (typeof (val) == 'function' || typeof (val) == 'number' || typeof (val) == 'boolean' || Object.prototype.toString.call(val) === '[object Date]') return false; if (val == null || val.length === 0) // null or 0 length array return true; if (typeof (val) == "object") { // empty object var r = true; for (var f in val) r = false; return r; } return false; }
Comments
Post a Comment