作用域链和预解析的案例

 //问1——>123
 function f1() {
     var num = 123;
     function f2() {
         console.log(num);
     }
     f2();
 }
 var num = 456;
 f1();
 //相当于
 function f1() {
     var num;
     function f2() {
         console.log(num);
     }
     num = 123;
     f2();
 }
 var num;
 num = 456;
 f1();

 //问2——>undefined
 var num = 10;
 fun();

 function fun() {
     console.log(num);
     var num = 20;
 }
 //相当于
 var num;
 function fun() {
     var num;
     console.log(num);
     num = 20;
 }
 fun();

我认为问题1也应该打印出undefined,但是却打印出了123
目前时认为:
作用域链和预解析的案例_第1张图片

你可能感兴趣的:(Javascript)