函数作用域

87 阅读1分钟

// 1. 全局变量  全局能用
        /*  let num = 10
         console.log(num)
         function fn() {
             console.log(num)
         }
         fn()
         if (true) {
             console.log(num)
         } */

        // 2. 在局部作用域下,变量是 局部变量
        // 函数内的变量,只能给内部使用,函数外面不能使用
        // function fn() {
        //     let a = 1
        //     function fn2() {
        //         let b = 2
        //         console.log(a);
        //     }
        //     fn2()
        //     console.log(b);
        // }
        // fn()
        // console.log(a);

        // 3. 块级变量
        /*     if (true) {
                let num = 10
            }
            console.log(num) */

        // for (let i = 0; i < 5; i++) {
        //     console.log(i)
        // }
        // console.log(i)

        // 如果函数内部或者块级作用域内部,变量没有声明,直接赋值,也当全局变量看,但是强烈不推荐

        // function fn() {
        //     // let num = 10
        //     num = 10
        // }

        // fn()
        // console.log(num)
        // if (true) {
        //     num = 110
        // }
        // console.log(num)

        // 5. 函数内部的形参可以看做是局部变量
        function fn(x, y) {
            // x 和 y 可以看做是 局部变量
            document.write(x + y)
        }
        fn(1, 2)