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