加载规则:
先定义:var function (从上往下)
后执行:(从上往下)
<script>
//加载的规则,先定义 var function(从上往下),后执行,除了定义代码之外,都是执行代码(从上往下),简称变量提升
//请按照顺序写出答案
fn(); //3:调用 fn
var a={}; //1:定义 a; 4:将a指向{}的内存地址
console.log(b); // 5: 因为在这之前,3-4步已经默认在全局定义并且赋值了,所以有值 =》2
//根据3-1步,默认创建
var b;
function fn() { // 2: 定义 fn
console.log(a); //3-3: a=> undefined
var a= b=2;//3-1: 定义 b ,b未经过var的定义,则向全局变量查看有没有变量,如果没有呀,则在全局默认创建var b; 3-2:定义a=b; 3-4=》:a=b指向2的常量值的引用
console.log(a);// 3-5: a => 2
}
console.log(a);// a => Object
</script>