Javascript Check for Not Null

Javascript Check for Not Null

Below is a code snippet, where we retrieve a form value. Before further processing check if the value is not null..

var val = document.FileList.hiddenInfo.value;
alert("val is " + val);  // this prints null which is as expected
if (val != null)
{
   alert("value is "+val.length); // this returns 4
}
else
{
   alert("value* is null");
}

Any ideas why it happens so.. ??

4

10 Answers

this will do the trick for you

if (!!val) {
    alert("this is not null")
} else {
    alert("this is null")
}
9

There are 3 ways to check for "not null". My recommendation is to use the Strict Not Version.

1. Strict Not Version

if (val !== null) { ... }

The Strict Not Version uses the "Strict Equality Comparison Algorithm" . The !== has faster performance, than the != operator because the Strict Equality Comparison Algorithm doesn't typecast values.

2. Non-strict Not Version

if (val != 'null') { ... }

The Non-strict version uses the "Abstract Equality Comparison Algorithm" . The != has slower performance, than the !== operator because the Abstract Equality Comparison Algorithm typecasts values.

3. Double Not Version

if (!!val) { ... }

The Double Not Version !! has faster performance, than both the Strict Not Version !== and the Non-Strict Not Version != (). However, it will typecast "Falsey" values like undefined and NaN into False () which may lead to unexpected results, and it has worse readability because null isn't explicitly stated.

4

It's because val is not null, but contains 'null' as a string.

Try to check with 'null'

if ('null' != val)

For an explanation of when and why this works, see the details below.

2

Use !== as != will get you into a world of nontransitive JavaScript truth table weirdness.

1

You should be using the strict not equals comparison operator !== so that if the user inputs "null" then you won't get to the else.

1

Check

if(value) {
}

will evaluate to true if value is not:

null
undefined
NaN
empty string ("")
0
false
1

This should work fine..

   if(val!= null)
    {
       alert("value is "+val.length); //-- this returns 4
    }
    else
    {
       alert("value* is null");
    }

It is possibly because the value of val is actually the string "null" rather than the value null.

0

If you want to be able to include 0 as a valid value:

if (!!val || val === 0) { ... }

This will work:

if (val) {
    alert("Not null");
} else {
    alert("Null");
}
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

James H. Sterling
Author

James H. Sterling

James Sterling reports on renewable energy developments, climate policy, ecological conservation, and green tech innovations around the globe.