javascript变量声明提升--hoisting
· 阅读需 11 分钟
javascript的变量声明具有hoisting机制,JavaScript引擎在执行的时候,会把所有变量的声明都提升到当前作用域的最前面。
先看一段代码
var v = "hello";
(function(){
console.log(v);
var v = "world";
})();
这段代码运行的结果是什么呢? 答案是:undefined 这段代码说明了两个问题, 第一,function作用域里的变量v遮盖了上层作用域变量v。代码做少些变动
var v = "hello";
if(true){
console.log(v);
var v = "world";
}