You want to check that a value is not an empty string, null, or undefined. How do you do this?
To check that a value is not an empty string, null, or undefined, you can create a custom function that returns true
if a value is null
, undefined
, or an empty string and false
for all other falsy values and truthy values:
function isEmpty(value) { return (value == null || (typeof value === "string" && value.trim().length === 0)); } console.log(isEmpty("cat")); // false console.log(isEmpty(1)); // false console.log(isEmpty([])); // false console.log(isEmpty({})); // false console.log(isEmpty(false)); // false console.log(isEmpty(0)); // false console.log(isEmpty(-0)); // false console.log(isEmpty(NaN)); // false console.log(isEmpty("")); // true console.log(isEmpty(" ")); // true console.log(isEmpty(null)); // true console.log(isEmpty(undefined)); // true
The isEmpty
function uses the equality operator (==
) to check if the argument value
is null
or undefined
. This works because if one of the operands is null
or undefined
, the other operand must be null
or undefined
for the equality comparison to return true
. If the argument value
is not null
or undefined
, the right side of the logical OR (||) operator is evaluated.
To check for an empty string, the logical && operator is used. The first operand uses the typeof
operator to check if the argument value
is a string. If the value
is a string, leading and trailing white space and line terminator strings are removed using the trim()
method. This logical && operator expression returns true
if a string is empty or consists of white space and line terminator strings only.