Question: ```
alert(typeof QuizParser.Parser.otherdata['response_set']['answers']["slide_" + _index]['trt']);​

```

Why? Shouldn't this simply alert the string `undefined`? If this is wrong, how should I check to see if that variable is defined or not?

Answer: 
The error has nothing to do with `typeof`, it's because you're attempting to access a property of an undefined variable: `QuizParser.Parser`
Well, it's not that easy, if you choose the direct way: you'd have to write something like...

```
if (typeof QuizParser !== 'undefined' // to check whether the variable defined or not
    && QuizParser.Whatever            // if variable IS defined, we can check its property directly
    && QuizParser.Whatever.Property... 
)

```

Take note that we cannot skip the 'middle' chains: if property doesn't exist, it will be evaluated to undefined, and the next step will throw a TypeError: `Cannot read property ... of undefined`. 

But there's another way (and it's quite common in many cross-browser libraries) - use exceptions to catch 'missing links' instead:

```
try {
  var flag = QuizParser.Whatever.Property.You.Like['equal']['to']['something'] !== undefined;
} catch(e) {}
if (flag) { ... }​ // processing goes here

```

With this you can more-o-less emulate `isset` behaviour from PHP: your `flag` variable will be set to `true` if and only if that endpoint property of the target object is set (= not `undefined`). And with exceptions mechanism you guarantee that no error will be thrown at your client (stopping the JS parsing altogether) otherwise...