函数声明和提升

在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域。变量提升即将变量声明提升到它所在作用域的最开始的部分函数声明才存在函数提升
var num = 20;
function test(){
console.log(num); // 20
num = 10; //去掉了var 就变成定义了全局变量了
console.log(num); // 10
}
test();
console.log(num); // 10

外面的是全局的。里面的可以访问它,里面定义的在输出后面,且不能变量提升。所以,就输出外面的20了

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理