2021-06-02 ES6新增之:let,const,箭头函数,bind,解构赋值

1.let变量和const常量

  1.1.let的特点:

	 1.存在暂时性死区
     2.不允许变量提升
     3.不允许存在同名变量
     4.存在块级作用域

  1.2.const修饰的变量不允许修改,变量一般写成全大写

2.箭头函数

  2.1.函数的三种格式对比,包括箭头函数

    function add(a, b) {return a + b;}
    var sub = function(a, b) { return a - b;}
    var mul = (a, b) => { return a * b;}
    
    console.log(add(8, 4), sub(8, 4), mul(8, 4));//12 4 32

  2.2.箭头函数的四种写法:
      1.标准写法:

var 变量名=(形参1,形参2,..)=>{
    函数体;
}

      2.当形参只有一个时可以省略小括号()

var 变量名=形参=>{
    函数体;
}

      3.当函数体只有一行执行语句时,可以省略花括号{}

var 变量名=(形参1,形参2,..)=>函数体;

      4.小括号花括号一起省略

var 变量名=形参=>函数体;

示例:

        var fn1 = (a, b) => {
            console.log(a, b);
        };
        var fn2 = a => {
            console.log(a);
        };
        var fn3 = (a, b) => console.log(a, b);
        var fn4 = a => console.log(a);
        
        fn1(2, 3);fn2(4);fn3(5, 6);fn4(7);

  2.3.箭头函数的this指向宿主函数

3.bind的用法

示例1:

        var func1 = function() {console.log(this);}
        func1(); //window
        
        var obj2 = {name: "zs"}
        var func2 = func1.bind(obj2);
        func2(); //Object{name:zs}

示例2:

        var A = {
            name: "A",
            sing() {console.log(this.name + "在唱歌");
        };
        var B = {name: "B"}
            
        A.sing.bind(B)();//后面空()代表执行

4.Symbol数据类型、Set数据结构和Map数据结构

  4.1.Symbol可以作为对象的属性名使用,保证不会与其他属性名产生冲突
Symbol 是js的数据类型(number string bool object null undefined Symbol),表示是独一无二的
格式:

let s=Symbol();

  4.2.Set用于数组去重

        var array = [1, 2, 3, 3, 2, 1, 1, 2, 3, 1];
        var a1 = new Set(array);
        console.log(a1); //Set(3) {1, 2, 3}

   4.3.Map结构是“值—值”对应(相对于"键–值"对应来说)

    var map = new Map([
        ["name","张三"],
        ["age",18]
    ]);
    console.log(map.has("name"),map.get("name"));   //true 张三

5.解构赋值

        //1.数组的解构赋值:将数组或者对象中值,结构出来给不同的变量
        var arr = ["beijing", "shanghai", "tianjin"];
        let [city1, city2, city3] = arr;//格式
        console.log(city2); //输出:shanghai
     
        //2.对象的解构赋值:将对象的值,给属性同名的变量
        var obj = {
            name: 'zs',
            age: 18,
            say() {console.log("hello world");}
        };
        let {name,age,say}=obj;// 变量和属性名保持一致
        console.log(name, age, say);
       
        //3.数学对象的解构赋值
        let {random,round}=Math;
        console.log(random(), round(1.4)); //0.2821343 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端OnTheRun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值