预解析 变量提升 函数提升

预解析(js)var 先声明提升 再函数声明提升

变量提升是 JavaScript 中比较“奇怪”的现象,它允许在变量声明之前即被访问,

只有var 关键字声明变量,会存在变量提升

 

总结:

  1. 变量在未声明即被访问时会报语法错误

  2. 变量在声明之前即被访问,变量的值为 undefined

  3. let 声明的变量不存在变量提升,推荐使用 let

  4. 变量提升出现在相同作用域当中

  5. 实际开发中推荐先声明再访问变量

  6. 我们不建议使用var声明变量

 

<body>
    <script>
      // var 声明的变量可以声明提升
      // 预解析(js)var 先声明提升  再函数声明提升

      // var age;
      // function fun() {
      //   console.log(9); //9
      // }
      // console.log(age); //undefined
      // age = 10;
      // fun();

      // 函数预解析后
      console.log(age); //undefined
      var age = 10;
      fun();
      function fun() {
        console.log(9); //9
      }
    </script>
  </body>

 

函数提升与变量提升比较类似,是指函数在声明之前即可被调用

总结:

  1. 函数提升能够使函数的声明调用更灵活

  2. 函数表达式一定要把调用写在下面

  3. 函数提升出现在相同作用域当中

  4.  
posted @ 2022-11-29 23:22  噢噢噢J  阅读(13)  评论(0编辑  收藏  举报