Javascript 为什么将var传递给函数会使这个var在内部不可变?

Javascript 为什么将var传递给函数会使这个var在内部不可变?,javascript,pass-by-reference,var,Javascript,Pass By Reference,Var,我是js新手,我想了解这三种情况下x变量之间的区别,以及为什么代码中的第三种情况下x=10仍然让我感到困惑 var x = 10; function test(){ var x = 15; } test(); console.log(x)// return 10 /////////////////////////// var x = 10; function test(){

我是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

这是因为x是通过值而不是引用传递的。有关更详细的说明,请参见:

新x是在函数中创建的

x属于外部范围

var x = 10;
function test(x){
  x = 15;
}
基本参数(如数字)通过传递给函数 价值值传递给函数,但如果函数 更改参数的值,此更改不会反映出来 全局或在调用函数中


在第三种情况下,x指的是参数not global VARIABLE为什么你否决了这个问题IDK i dont downVOTETHES这是任何好的教程都应该解释的。如果您阅读或收到的介绍没有正确解释这一点,请搜索其他介绍。
var x = 10;
function test(){
  x = 15;
}
var x = 10;
function test(x){
  x = 15;
}