How can I check for an empty/undefined/null string in JavaScript? How can I check for an empty/undefined/null string in JavaScript? javascript javascript

How can I check for an empty/undefined/null string in JavaScript?


If you just want to check whether there's a truthy value, you can do:

if (strValue) {    //do something}

If you need to check specifically for an empty string over null, I would think checking against "" is your best bet, using the === operator (so that you know that it is, in fact, a string you're comparing against).

if (strValue === "") {    //...}


For checking if a variable is falsey or if it has length attribute equal to zero (which for a string, means it is empty), I use:

function isEmpty(str) {    return (!str || str.length === 0 );}

(Note that strings aren't the only variables with a length attribute, arrays have them as well, for example.)

For checking if a variable is falsey or if the string only contains whitespace or is empty, I use:

function isBlank(str) {    return (!str || /^\s*$/.test(str));}

If you want, you can monkey-patch the String prototype like this:

String.prototype.isEmpty = function() {    // This doesn't work the same way as the isEmpty function used     // in the first example, it will return true for strings containing only whitespace    return (this.length === 0 || !this.trim());};console.log("example".isEmpty());

Note that monkey-patching built-in types is controversial, as it can break code that depends on the existing structure of built-in types, for whatever reason.


All the previous answers are good, but this will be even better. Use dual NOT operators (!!):

if (!!str) {    // Some code here}

Or use type casting:

if (Boolean(str)) {    // Code here}

Both do the same function. Typecast the variable to Boolean, where str is a variable.

  • It returns false for null, undefined, 0, 000, "", false.

  • It returns true for all string values other than the empty string (including strings like "0" and " ")