日期:2014-05-16  浏览次数:20294 次

javascript函数中变量的范围

var first = 'hi there';
var first = (function() {
    console.log("first", first); // undefined
    var first = "hello world";
})();
//相当于
var first = 'hi there';
var first = (function() {
    var first;//the variable declaration moved to the top 
    console.log("first", first); // undefined
    var first = "hello world";
})();

// second test case
var second = 'hi there';
var second = (function() {
    console.log("second", second ); // "hi there"
    // here, we DO NOT declare a local "second" variable
})();

// in the second test case, we don't declare the local variable, so the console.log call refers to the global variable and the value is not "undefined"
//link:http://jsfiddle.net/pomeh/ynqBs/