Uninitialized Js Var

by HugeHugh

JavaScript

// the var debug1 is not defined before now
try {
    debug1 && alert('debug1-ok');
} catch (e) {
    // it causes an error to reference it
    alert('debug1-err');
}

// this is the type of check that would need to be used
if (typeof debug1 === "undefined") {
    alert('debug1-undefined');
}

// debug2 is defined
try {
    var debug2;
    // yet debug2 is not truthy, this doesn't do either alert
    debug2 && alert('debug2-ok');
} catch (e) {
    alert('debug2-err');
}

// debug3 is defined and truthy, only case to alert
try {
    var debug3 = 1;
    debug3 && alert('debug3-ok');
} catch (e) {
    alert('debug3-err');
}

// press the Run button above to try it again