bar
2 番目の console.log で何が起こっていますか? 「Andy」または参照エラーをスローするべきではありませんか? また、なぜfoo
未定義ではないのですか?
クロムを使用しています。
// lexical scope example
var bar = "Andy";
try {
console.log(bar); // Andy
(function() {
console.log(bar); // undefined!
var bar = "B",
foo = "Last Name";
console.log(bar); // B
console.log(foo); // Last Name
})();
console.log(bar); // B
console.log(foo); // Reference Error
} catch (e) {
console.log(e);
}
上記の JSFiddle: http://jsfiddle.net/2D9fj/3/