首页 > 解决方案 > 为什么将 var 传递给函数会使这个 var 在内部不可变?

问题描述

我是 js 新手,我想了解这三种情况下 x 变量之间的区别,以及为什么这段代码中的第三种情况让我 x=10 仍然感到困惑

      var x = 10;
      function test(){
            var x = 15;
      }
      test();
      console.log(x)// return 10

      ///////////////////////////
      var x = 10;
      function test(){
             x = 15;
      }
      test();
      console.log(x)// return 15

      ////////////////////////////
      var x = 10;
      function test(x){
             x = 15;
      }
      test();
      console.log(x)// return 10

标签: javascriptpass-by-referencevar

解决方案


这是因为 x 是按值(而不是引用)传递的。有关更详细的说明,请参见:http: //jasonjl.me/blog/2014/10/15/javascript/


推荐阅读