且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ES6语法_var、let 、 const、解析表达式、模板字符串、箭头函数、map 、reduce、Object优化(一)

更新时间:2021-09-08 05:05:11

写在最前面:


(1). ECMAScript6.0(以下简称ES6,ECMAScript是一种由Ecma国际通过ECMA-262标准化的脚本),是JavaScript语言的下一代标准,2015年6月正式发布,从ES6开始的版本号采用年号,如ES2015,就是ES6。ES2016就是ES7


(2). ECMAScript是规范,JS的规范的具体实现。


①. let | const | var


  • ①. let是块级作用域,函数内部使用let定义后,对函数外部无影响


      <script>
        //1.var申明的变量有变量提升,如果不初始化会输出undefined,不会报错。
        console.log(num)//undefined
        var num = 10
        console.log(num)//10
        
        console.log(num2)//报错 (let申明的变量没有变量提升)
        let num2 = 10
        console.log(num2)//10
        
        //2.外部的num变量与内部let声明的变量是没有关系的
        //利用let声明的变量会绑定在这个块级作用域,不会受外界的影响
        var num3=10
        if(true){
             //由于内部的num3和外部没有关系,这里的num3是let num3,所以这里会报错
             console.log(num3)
             let num3=5;
             console.log(num3)
        }
        //3.let只能声明一次,声明多次相同变量会报错
        let a=5;
        let a=10;
      </script>


②. const定义的变量不可以修改,而且必须初始化


    <script>
        /*
        1、具有块级作用域
        2、声明常量必须赋值
        3、赋值后值不能修改(存储地址不可更改)
        */
        //例
        const ary = [100, 200];
        ary[0] = 'a'; 
        ary[1] = 'b'; 
        console.log(ary); // ['a', 'b'];
        ary = ['a', 'b']; // Assignment to constant variable
    </script>


③. var定义的变量可以修改,如果不初始化会输出undefined,不会报错


②. 数组、对象解析表达式


  • ①. 解析表达式两种情况


  1. 数组赋值:如果解构不成功,变量的值为undefined


  1. 对象赋值


    <script>
        //1.数组赋值
        let [a, b, c, d] = [1, 2, 3];
        console.log(a)//1
        console.log(b)//2
        console.log(c)//3
        console.log(d);//undefined
        //如果解构不成功,变量的值为undefined
        //2.对象赋值
        let {name,age}={"name":"xiaozhi","age":23}
        console.log(name)
        console.log(age)
        // 起別名
        let person={name:"tangzhi",age:"24"}
        let {name:myName,age:myAge}=person;
        console.log(myName);
        console.log(myAge);
    </script>