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
fornull
,undefined
,0
,000
,""
,false
.It returns
true
for all string values other than the empty string (including strings like"0"
and" "
)