js代码预解析
1、任何变量,如果没有声明就赋值,此变量就为全局对象所有
2、一切声明的全局变量,全是window的属性
3、在预编译中if中的函数不会提升
第一步:
  创建GO或者AO
第二部:
  找形参和变量声明,将变量和形参名作为GO或AO的属性名,值为undefined
第三步:
  将实参值和形参统一
第四步:
  在函数体里面找函数声明,值赋予函数体
 
  示例1
    console.log(f)
    var f = 123;
    function f(){console.log(456)}
    解析过程:
      var f;
      function f(){console.log(456)}      // 函数整体提升
      console.log(f)    // function f(){console.log(456)}
      f = 123;
  示例2
    console.log(f)
    function f(){console.log(456)}
    var f = 123;
    解析过程:
      function f(){console.log(456)}      // 函数整体提升
      var f;
      console.log(f)    // function f(){console.log(456)}
      f = 123;

 

版权声明:本文为cuishuangshuang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/cuishuangshuang/p/13040168.html