Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascripts中的变量在函数调用时如何处理?_Javascript_Jquery - Fatal编程技术网

javascripts中的变量在函数调用时如何处理?

javascripts中的变量在函数调用时如何处理?,javascript,jquery,Javascript,Jquery,例如,如果我有一个函数,其中包含某个变量 var test = 3; function looper(){ var testing = 1; testing += testing; } for (var i=0;i<=10,i++){ looper(); alert(test); } var检验=3; 函数活套(){ var检验=1; 测试+=测试; } 对于(var i=0;i 除此之外,我可以获得传递到函数中

例如,如果我有一个函数,其中包含某个变量

  var test = 3; 

  function looper(){

     var testing = 1;
     testing += testing;

  }

  for (var i=0;i<=10,i++){

     looper();

     alert(test);

  }
var检验=3;
函数活套(){
var检验=1;
测试+=测试;
}
对于(var i=0;i
除此之外,我可以获得传递到函数中的测试变量的值吗
或者需要将其作为参数传递

是的,试试看

   var test = 3; 
   function looper(testing)
   {
       testing += testing;
       return testing;
   }
   for (var i=0;i<=10,i++)
   {
       test = looper(test);
       alert(test);
   }
var检验=3;
功能活套(测试)
{
测试+=测试;
回归测试;
}
对于(var i=0;i
var test=3;
var检验=1;
函数活套(){
测试+=测试;
回归测试;
}

对于(var i=0;i您有
var testing=1;
,因此即使循环也将总是反复地首先实例化为
1

您应该将其移出功能范围:

  var testing = 3;  // NOT "test" but "testing"!!!!!

  function looper(){
      testing += testing;
  }

  for (var i=0;i<=10,i++){
       looper();
  }

  alert(testing);   // "testing", remember?
var testing=3;//不是“test”而是“testing”!!!!!
函数活套(){
测试+=测试;
}

对于(var i=0;i变量测试是全局声明的,因此值3显示为警报。
在函数循环器的每次调用中,变量测试都是在不保留以前的值的情况下创建的,并以这种方式分配值1。在函数调用中,测试值始终为2。

var
变量是函数范围的。dude首先更改(var i=0;我感谢您的帮助,只是为了确保我能很好地理解最新的计算测试变量,我应该把它放在函数外部,JavaScript可以很容易地从外部函数读取变量
  var testing = 3;  // NOT "test" but "testing"!!!!!

  function looper(){
      testing += testing;
  }

  for (var i=0;i<=10,i++){
       looper();
  }

  alert(testing);   // "testing", remember?