1、变量提升
请看如下代码:
<script>
var name = "Tom";
(function(){
console.log(name);
var name = "Tim";
})();
</script>
运行结果如下图:
分析:JavaScript中,变量的声明将被提升到函数的最顶部,所以上面代码其实质应为如下代码:
<script>
var name = "Tom";
(function(){
var name;
console.log(name);
name = "Tim";
})();
</script>
运行结果如下图:
2、函数提升
请看如下代码:
<script>
method();
function method(){
console.log("Tom");
}
</script>
运行结果如下图:
分析:方法定义在下面,为什么可以这样调用呢?因为在JavaScript中,函数定义式声明的函数会被提升到最顶部执行,变量式声明的函数则不会,如下代码:
<script>
method();
var method = function(){
console.log("Tom");
}
</script>
运行结果如下图: