es6标准

 

简介百度  阮一峰------es6

Babel转码规则:function可以由箭头代替,如果块级中只有一行代码,可以省去return

 input.map(function (item) {
       return item + 1;
   })

    //es6标准
    input.map(item =>item + 1)

let与var区别

1.let存在块级作用域
2.let不会提升变量作用域(let和const)
3.暂时性死区(未声明,提前用变量,会报错)
4.不允许在相同作用域内重复声明同一个变量

1.let存在块级作用域

if('ture') {
        var a = 100;
        var a = 10;
        let b = 10;
    }
    // console.log(b,a); //报错    //let存在块级作用域
    // for循环就很适合let,因为计数变量只会在体内有效

2.let不会提升变量作用域(let和const)

 console.log(c)    //undefine  变量声明提升
    var c = 1000;
    console.log(d)    //报错
    let d = 1000;

3.暂时性死区(未声明,提前用变量,会报错)

第一种:

//①
    if('true') {
        w = 123;
        let w;
        console.log(w)   //报错
    }

第二种:

 //②
    function bar(x = y , y = 2 ) {
        return [x,y]
    }
    bar()  /*报错*/

第三种:

 // ③在变量还没有声明完成时就取变量的值
    var a = a;  //undefine
    let y = a;   //报错

 

解构赋值

 es6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这杯称为解构
     let a = 10;
     let b = 11;
     let c = 12;
    // 现在可以从数组中提取值
    let [a,b,c] = [11,12,13];
    console.log(a,b,c);
    // 实质上,这种属于"模式匹配"
    let [,,fff] = [11,12,13];
    console.log(fff)

    // 默认值,es6中内部使用的是严格相等运算符(===),判断一个位置是否有值。所以,只有当数组元素严格等于undefind,默认值才会有效
    let [f = 1] = [];
    // f = 1
    let [ffff = 1] = [undefined];
    // f = 1
    let [fffff = 1] = [null];
    // ff = null

    // 对象的解构赋值(顺序不需要对应,但名字要对应)
    // 真正 杯赋值的是后面的   obj1  obj2
    let {obj1,obj2} = {obj1:"aa",obj2:'bb'};
    // let {obj3} = {obj1:"aa",obj2:'bb'}; //undefined
    // obj1 aa
    // obj2 bb

    // obj3是匹配模式 真正杯赋值的是后面的   bar才是变量
    let {obj3:bar} = {obj1:"aa",obj3:'bb'};

    // 字符串解构赋值
    let{length : len} = 'hello';
    // len //5

    // 函数的解构
    function f1(x = 10,y = 20) {
        return x + y;
    }
    console.log(f1())
    // 函数解构也可以传参 ,用对象方式来写
    function f2({x = 10,y = 20}) {
        return x + y;
    }
    /*console.log(f2()) */  //报错
    console.log(f2({}))   //必须得传值,哪怕是一个空对象 ,如果不给x值,会输出NaN
    console.log(f2({y:100}))   //110

rest

    <!--rest用于获取多余的参数,该变量将多余的参数放入数组中-->
        function f(x,y,z,...arg) {
            console.log(arg)   //length ==3  4 5 6
            console.log(arguments)
        }
        f(1,2,3,4,5,6)
  

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值