Chapter 6 - Objects

6.2.3 Property Access Errors

by Denise Nepraunig

JavaScript

// JavaScript The Definitive Guide 6th Edition
// 6.2.3 Property Access Errors

var book = {
    "main title": "JavaScript",
    'sub-title': "The Definitive Guide",
    'for': "all audiences",
    author : {
        firstname: "David",
        surname: "Flanagan"
    }
};

// accessing a non-existing property will result in undefined

console.log("doesn't exist: book.subtitle", book.subtitle);

// but accessing something that is undefined or null will result
// in an TypeError
try {
    var len = book.subtitle.length;
} catch (e) {
    console.log("oooh, cannot access property of undefined");
}

// a not so good example
var booklen = undefined;
if (book) {
    if (book.subtitle) len = subtitle.length;
}

// an elegant example
var newbooklen = book && book.subtitle && book.subtitle.length;
console.log("newbooklen", newbooklen);

book.subtitle = "a must read";
newbooklen = book && book.subtitle && book.subtitle.length;
console.log("newbooklen", newbooklen);