Javascript Scope
by Joshua McNeese
JavaScript
// global scope
var x = 9;
function fn1() {
// local scope
var x = 5;
var y = 6;
};
console.log(x); // 9
try {
console.log(y); // ReferenceError: Can't find variable: y
} catch(e) {
console.log(e);
}
// bad function
function fn2() {
x = 5;
};
fn2();
console.log(x); // 5
// closed scope
function outer() {
var x = 5;
function inner() {
console.log(x); // 5
}
inner();
}
outer();
// more complex example
(function() {
var baz = 1;
var bim = function() {
console.log( baz );
};
bar = function() {
console.log( baz );
};
})();
bar(); // 1
try {
console.log(baz); // ReferenceError: Can't find variable: baz
} catch(e) {
console.log(e);
}
try {
bim(); // ReferenceError: Can't find variable: bim
} catch(e) {
console.log(e);
}