JS作用域

101 阅读1分钟

作用域

含义: 教你怎么写代码
作用: 生效,有用
域: 范围
作用域: 变量(变量名,函数名)生效的范围

两种

1.全局作用域

  • 打开一个页面,就是一个全局作用域
  • 全局作用域,叫做 window

2.私有作用域(局部作用域)

  • 只有函数生成是由作用域
  • 每一个函数就是一个私有作用域

image.png

作用域的上下级关系

  • 你的作用域写在谁的下面,你就是谁的子级作用域

image.png

image.png

函数作用域

<script>
        let a = 10,
            b = 20;

        function fn() {
            let a = 100,
                w = 200;
            console.log('fn '+a, w);

            function fn2() {
                let a = 1000,
                    r = 2000;
                console.log('fn2 '+a, r);
            }

            fn2();
        }
        console.log('全局 '+a, b);
        fn();
    </script>

image.png 作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突。

作用域链

如果当前作用域中没有值,就会去获取上一级的作用域中去找

    <script>
        let a = 10,
            b = 100;

        function fn() {
            let b = 20;

            function fn2() {
                console.log(a + b);
            }

            fn2();
        }

        fn();
    </script>

image.png