JS 变量的作用域

2018/8/25 posted in  JavaScript

作用域:就是变量声明的区域,就是变量和函数的可访问范围。在全局声明的变量为全局可见可访问的就是全局变量,如果在函数内部声明的变量只能在函数内部访问.

  • 函数的参数只能在函数内部访问,是局部变量.

  • JavaScript没有块级作用域,只有函数作用域和全局作用域。for循环内部定义的变量是函数级别的作用域。

  • 变量没有在函数内声明或者声明的时候没有带var就是全局变量,拥有全局作用域。特殊:var a = b = c = 0; a是局部变量,b与c是全局变量。

  • 全局作用域的变量可以在js中任何地方调用,函数作用域的变量只能在自己函数内部调用,包括自己内部定义的其他函数都可以直接调用。

  • 变量的作用域是以它声明时的为准,因为变量的作用域在JS代码的解释阶段就已经完成规则的制定。

<script>
    var t = 9; // 全局作用域,全部都可以访问
    function f1() { // f1 函数全局作用域
        var t2 = 10; // t2 是 f1 函数内部可访问
        console.log(t);

        function f2() { // f2 函数是 f1 函数的作用域
            var t3 = 200; // t3 只能在 f2 函数内部访问
            console.log(t2);
            return t2 * t2; // f2 函数可以访问f1函数的作用域的变量及 f2 自己内部的变量。
        }

        return f2();
    }

    var m = f1();
    console.log(m);
</script>