JavaScript 变量and函数提升机制

  • JavaScript变量作用域,看一下代码,(变量提升链接在下方↓)
    <script type="text/javascript">
      var a = 5&&6;
      alert(a);  // 6
      function getB()
      {
        var a = 7;  //我个人理解 var 声明变量的时候应该是 决定了变量的作用域。当在函数内部再次声明变量a的时候,这个a 和 函数外部的a 就不是一个变量了,所以打印的值也不一样。全局作用域的a还是使用全局作用域的a的值
        alert(a);  //7
      } 
      getB();
      alert(a);   //6
    </script>
    // output  6  7  6
    
    <script type="text/javascript">
      var a = 5&&6;
      alert(a);
      function getB()
      {
        a = 7;  //而在函数内部如果没有重新var 声明的话,就是还使用全局作用域的变量a ,所以函数里修改a 的值,也就是修改全局作用域的a 的值。后面打印a 的值也变了。
        alert(a);
      } 
      getB();
      alert(a);
    </script>
    //output  6  7  7
  • 像PHP中是不允许在同一个作用域中声明两个同名函数的;而JavaScript 却可以这样做,同作用域下后面函数会覆盖前面的函数。
  • 变量提升and函数提升:https://www.cnblogs.com/liuhe688/p/5891273.html

猜你喜欢

转载自www.cnblogs.com/bneglect/p/12151911.html
今日推荐