Function Scope and Hoisting

by jdcravens

JavaScript

var foo = "foo";

var f = function (x) {
    var r = true;
    foo = "bar";
    if (x > 3) {
        var foo = "local"; // local scope
        r = false;
    }
    return r;
};

//var z = f(2);
console.log("f(2): " + f(2));
console.log("foo: " + foo);

console.log("f(4): " + f(4));
console.log("foo: " + foo);