bar
第二个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/