Javascript的范围是什么?

我不明白范围是什么.我在某处读过范围是访问变量的方法.但是我发现很难想出一个变量可通过范围访问的情况.函数内的所有变量都可以通过“全局”或“激活/变量”对象的上下文或通过闭包来访问.这是一段代码来证明我的意思:

var global_var = 7;
var f = (function() {
    var closure_var = 5;
    return function() {
        var local_var = 3;
        alert(local_var);  // alerts 3  - visible through context as Activation Object's property
        alert(closure_var); // alerts 5  - visible through closure
        alert(global_var); // alerts 7  - visible through context as Global Object's property
        alert(this.global_var); // alerts 7  - visible through context as Global Object's property
    }
})();
f();

那么范围是什么?
以下是here的摘录和我的评论:

// a globally-scoped variable
var a=1;

// global scope
function one(){
    alert(a); 
}
// no, it's accessible as global object's context

// local scope
function two(a){
    alert(a);
}
// no, it's accessible as activation object's context

编辑:

谢谢大家.我想我必须从变量和函数的角度来看范围.

最佳答案 范围是变量处于活动状态的区域.像功能或页面.

global_var和f对于页面是全局的,因为它们不在所有函数中,因此它们可用于所有函数.

local_var是函数f()的局部函数,因此在函数f()之外不可用.

点赞