全局变量:在函数外部的变量,在浏览器被关闭的时候才会被销毁,比较占内存。
局部变量:在函数内部的变量(未被定义的变量除外)/函数的形参,程序执行完就会被销毁。
作用域链:内部函数访问外部函数会一层一层向外查找。(就近原则)
预解析:js引擎会把js里面的所有var和function提升到当前作用域的最前面
变量提升:把变量的声明提升到当前作用域的最前面,不提升赋值操作
函数提升:把函数的声明提升到当前作用域的最前面,不调用函数
var num=10;
function fn(){
console.log(num);
var num=20;
console.log(num);
}
fn();
//相当于执行以下代码
var num;
function fn(){
var num;
console.log(num);//undefined
num=20;
console.log(num);//20
}
num=10;
fn();









