JS变量提升补充

Posted endian11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS变量提升补充相关的知识,希望对你有一定的参考价值。

  • 变量提升只对等号左边的进行提升,右边是值不会进行提前声明
  • 不管条件是否成立,判断体当中出现的var、function都会进行变量提升;function声明的变量只能提前声明不能进行定义(前提函数实在判断体中)
  • 代码执行到条件判断的地方
    • 条件不成立;进入不到判断体当中,此时之前声明的变量或者函数依然是undefine
    • 条件成立:进入条件判断体中第一件事情不是代码执行而是把之前变量提升没有进行定义的函数首先定义了(进入到判断体,把函数先定义了)
  • 代码
    console.log(num);//undefine
    console.log(fn);//undefined
    if (1 ==1)
    {
      console.log(num);//undefined
      console.log(fn);//→函数体本身
    
      var num = 12;
      function fn(){
       
      }
      console.log(fn);
      console.log(num);  //→函数体本身
    }
    console.log(fn); //→函数体本身
    

      

  • 重名 会进行重新的声明和定义

以上是关于JS变量提升补充的主要内容,如果未能解决你的问题,请参考以下文章

js常用代码片段

JS的那些坑

十条jQuery代码片段助力Web开发效率提升

十条jQuery代码片段助力Web开发效率提升

js预解析

JS预解析与变量提升