【es6笔记】es6的入门简介_变量(2)

这里整理了ES6新增的变量声明方法。

<!DOCType html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
</head>

<body>
    <script>
        console.log("--------------1.let 用法--------------")
        //1.声明
        let a;
        let b, c, d;
        let e = 10, f = 'haha', g = [];

        // 2.同名的变量报错
        let h;
        //let h; 同名的变量报错

        //3. 作用域是代码块 {}
        // if else for while
        {
            var s = '小明';
            let s2 = '小张'
        }
        console.log(s); // 小明
        //console.log(s2); // ReferenceError: s2 is not defined

        //4.不存在变量提升, var 变量是提前搜集声明,但let不会
        console.log(k); // undefined
        var k = 10;

        // console.log(age2); // ReferenceError: Cannot access 'age2' before initialization
        // let age2 = 20;

        //5.不影响作用域链
        let city = '上海市';
        {
            let city = '北京市';
            function printCity() {
                console.log(city);
            }
            printCity(); // 北京市
        }
        printCity(); // 北京市

        console.log("--------------2.const 用法--------------")
        //1.声明
        // const a;  2. 必须要赋值,否则报错

        // 3.常量一般大写
        const COUNTRY = '中国';

        // 4.不能修改
        //COUNTRY = '俄罗斯'; //TypeError: Assignment to constant variable.

        // 5.块级作用域
        {
            const AA = 10
        }
        // console.log(AA); // ReferenceError: AA is not defined

        var QTY = 12;
        {
            const QTY = 11;
            function printQty() {
                console.log(QTY);
            }
            printQty(); //11
        }
        printQty(); //11

        // 6.对数组或兑现的修改(引用类型的内容修改),不算常量修改不算报错。
        const ARR = [1, 2, 3];
        ARR.push(4);
        console.log(ARR); // [1, 2, 3, 4]

        console.log("--------------3.变量结构赋值--------------");

        // ES6 允许按照一定的模式从数组或对象中提取值,对变量进行赋值,这被称为解构赋值。
        const ARR1 = ['小张', '小明', '小红'];
        let [zhang, ming = '', hong, wang = ''] = ARR1;
        console.log(zhang); //小张
        console.log(ming); //小明
        console.log(hong); //小红
        console.log(wang); // ''

        const OBJ = {
            name: '小明',
            age: 10,
            sayName: function () {
                console.log('我的名字是' + this.name);
            }
        };

        let { name, age, sayName } = OBJ;
        console.log(name); //小明
        console.log(age); //10
        sayName(); //我的名字是小明

        console.log("--------------4.模板字符串--------------");
        // 1.支持换行
        let str = `<ul>
            <ui>小明</ui>
            <ui>小张</ui>
            </ul>`;

        // 2.变量拼接
        let name3 = '小张';
        let strName3 = `${name3}是小学生。`
        console.log(strName3); //小张是小学生。

        console.log("--------------5.对象的简化写法--------------");

        let name4 = '小张';
        let age4 = 11;

        const student = {
            name4,
            age4,
            sayName4() {
                console.log('我的名字是' + this.name4);
            }
        };

        //和下面的一样的效果
        const student1 = {
            name4: name4,
            age4: name4,
            sayName4: function () {
                console.log('我的名字是' + this.name4);
            }
        };

    </script>
</body>

</html>

欢迎大家的意见和交流

email: li_mingxie@163.com