LA.NET [EN]

Sep 02

Understanding when expressions are true or false

Posted in Javascript      Comments Off on Understanding when expressions are true or false

If you’ve done some C programming in the past, then you shouldn’t have any problems with understanding this concept. In JavaScript, things are really easy. Any expression which isn’t in the next list is *always* true:

  • false
  • null
  • undefined
  • empty string
  • Zero (0)
  • NaN

In practice, this means that the following snippet will always show the alert message:

var isIsTrue = "false";
if ( isIsTrue ) {
    alert(""false" is false");
}

Going back to the previous list, I guess it’s fair to say that we’re facing a somewhat big list. There are some things that may catch you “out of balance”. Here’s a quick example. What should happen in the next snippet:

var user = {
    nome: "Luis",
    address: "Fx"
};
if (user.age == null) {
    alert("no age");
}

You probably know that accessing a non existing property should return undefined. If you run the next snippet:

alert(null === undefined);

you’ll see that  those values aren’t really the same. However, the initial test (user.age == null ) will still work and you’ll get the alert. So, even though you’ve written incorrect code, things worked out (don’t use null for nonexistent properties and please please please don’t ever use the == operator). You might not be so lucky in other scenarios.

And that’s it. Keep tuned for more on JavaScript.