`is defined` - The variable has been defined, and set to any value (or `null`).

`is not null` - The variable has been defined, and is specifically **not** `null`.

In PHP terms, it's like the difference between `is_null()` vs. checking whether the variable exists using `get_defined_vars()` (see this [Stack Overflow thread](http://stackoverflow.com/questions/3803282/check-if-value-isset-and-null) for a little more clarity)

----------

Try this experiment... Without setting `myVar`, put this in your template:

    {{ (myVar is defined) }}

Since that equates to `false`, nothing will appear in your template. Now change it to this:

    {{ (myVar is not null) }}

That will actually throw an error, since `myVar` was never defined.