So this is an odd bit of JavaScript trivia.  The above line of code is the most obvious, and it's what you would do in other languages, but it's not what we do in JavaScript.  Instead, the line looks like this:

```
if (typeof this._variable !== 'undefined') {
```

Looks worse, like a string comparison, right?  Not so.  `typeof` is a language keyword, and `'undefined'` is a constant string literal, so neither of those things change at runtime.  The double-not-equal `!==` tells JavaScript not to allow any type coercion (automatic conversions from one type to another).  As such, most modern JS engines can completely optimize this down to a single machine-level null pointer check or similar.

Now consider the original, more obvious line of code: `undefined` without the quotes is an identifier, and `!=` allows type coercion, so there are actually several more runtime factors for JS to worry about.  It's slower and less precise.  JS is strange that way.