首页 > 解决方案 > Javascript 范围 - 全局 vs 功能

问题描述

在一个案例中有点怀疑。如果我在全局范围内声明了一个变量,我知道它会附加到窗口对象。

var var1 = 'Apple';

如果我在函数中声明了一个变量,则该变量在函数范围内。

function testFunc() {
   var var2 = 'zebra';
}

但是如果我调用一个函数并传递一个参数,我就知道发生了赋值操作。

eg 1) function testFunct(param1) {
        console.log('which scope is param1');
      }
      testFunct('Mango');

我知道赋值操作 var param1 = 'Mango'; 发生,但在哪里?在调用地点或调用时?param1 的范围是什么,全局的还是函数的。

如果在调用中声明并传递了一个全局变量,

eg 2)  function someFucntionCall(param) {
         console.log('what is the scope of param here');
       }
       var someVar = 'Merc';
       someFucntionCall(someVar);  //global variable declared and passed in function invocation

这里 param 的范围是什么?在这些中有点困惑,在任何地方都找不到合适的解释。

标签: javascriptscope

解决方案


推荐阅读