01-let、const、var

一、let介绍

    <script>
        //1.let声明的变量只在所处于的块级有效

        // if (true) {
        //     let a = 10
        //     console.log("a=" + a);
        //     if (true) {
        //         let b = 20
        //         console.log("b=" + b);
        //     }
        //     console.log(b);
        // }
        // console.log(a); //a is not defined
        // let c = 1
        // console.log(c);

        console.log('---------');

        //2.防止循环变量变成全局变量
        // for (let i = 0; i < 5; i++) {
        //     console.log(i);
        // }

        console.log('---------');

        //3.不存在变量提升  必须要先声明再使用
        // console.log(num);
        // let num = 20

        // console.log('---------');


        //4.暂时性死区
        var str = 20
        if (true) { //使用let就表示块级里的str和外面的str无关
            console.log(str);
            let str = 'abc';

        }
    </script>

二、let面试题

    <script>
        // var arr = []
        // for (var i = 0; i < 2; i++) {
        //     arr[i] = function() {
        //         console.log(i);
        //     }
        // }
        // arr[0]();
        // arr[1]();
        let arr = []
        for (let i = 0; i < 2; i++) {
            arr[i] = function() {
                console.log(i);
            }
        }
        arr[0]();
        arr[1]();
    </script>

三、const介绍

    <script>
        //1.具有块级作用域
        // if (true) {
        //     const a = 20
        //     console.log(a);
        //     if (true) {
        //         const a = 10
        //         console.log(a);
        //     }
        // }
        // console.log(a); //not defined

        //2.声明常量时必须赋值
        // const num;
        // console.log(num); //Missing initializer in const declaration

        //3.常量赋值后 值(内存地址)不能修改
        // const a = 10
        // a = 20
        // console.log(a); //Assignment to constant variable.

        const arr = [100, 200]
        arr[0] = 'a'
        arr[1] = 'b'
        console.log(arr);
        arr = ['a', 'b']
        console.log(arr); //Assignment to constant variable.
    </script>

四、三者区别

    <script>
        //var、let、const区别
        /*
        1.使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象(先使用再赋值)
        2.let,其作用域为该语句所在的代码块内,不存在变量提升
        3.const,其作用域为该语句所在的代码块内,常量值(内存地址)不能被修改
        */
    </script>

image

posted @ 2024-05-30 14:59  _你听得到  阅读(4)  评论(0)    收藏  举报