如题所看到的,看以下的演示样例
(能够使用Chrome浏览器,然后F12/或者右键,审查元素.调出开发人员工具,进入控制台console输入)
(使用技巧: 控制台输入时Shift+Enter能够中途代码换行)

var name = "xiaoming";

(function(){
var name = name || "小张";
console.info(name);
})();// 小张 (function(){
name = name || "小张";
console.info(name);
})(); // xiaoming (function(){
var name2= name;
var name = name || "小张";
console.info(name, name2);
})(); // 小张 undefined 

运行时的截图例如以下所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcmVuZnVmZWk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

解释例如以下: 
在JavaScript中,

function xxx(){
// 一堆代码...
// ...
var name2 = name;
var name = name || "小张";
// 一堆代码
}

运行时会变成这样的等价形式:

function xxx(){
var name2 = undefined;
var name = undefined;
// 其它 var 也会被提前到最起始处
// 一堆代码...
// ...
name2 = name;
name = name || "小张";
// 一堆代码
}

你还能够參考 Bootstrap中文网的教程 JavaScript 中对变量和函数声明的提前(hoist)

日期: 2014-11-07

作者: 铁锚(http://blog.csdn.net/renfufei)

04-25 14:09