美文网首页
ES6新加入的内容(1)

ES6新加入的内容(1)

作者: what__ | 来源:发表于2017-07-18 19:39 被阅读0次

    let

    1、let 声明变量的一种新的方式
    2、用let声明的变量没有变量提升
    3、for循环中用let声明 变为块级作用域 可以认为为局部变量
    4、let更适用于for循环
    5、let 变量不能重复声明
    6、暂时性死区 把块级作用域锁死 同名的全局变量不能进入块级作用域(function())

    var e=100;
    function fun(){
        e=200;
        let e;//暂时性死区  把块级作用域锁死  同名的全局变量不能进入块级作用域(function())
        console.log(3333,e)
    }
    fun()
    
    var arr=[];
    for(let i=0;i<5;i++){
        arr[i]=function(){
            console.log(i);
        }
    }
    arr[2]()//输出2
    arr[3]()//输出3
    如果循环用var声明的话  对应上面的3,4条特性看
    arr[2]()//输出5
    arr[3]()//输出5
    

    constant

    constant(常量)

    1.const-->constant 常量
    2.constant 也是一种新的变量声明方式
    3.声明之后 下面不能修改
    4.一旦声明,需立即赋值
    5.其他与let一致
    书写方式:const Pa2=222 //之后在后面就不能更改Pa的值

    arrow 箭头函数(=>)

    1.箭头函数能保持当前的作用
    2.使用箭头函数声明的函数,其作用域为声明时所在的位置(作用域)
    3.箭头函数不能使用 new
    4.箭头函数内部没有arguments

    let obj = {
        name:"sang",
        say:function(){
            console.log(this.name);
            setTimeout(()=>{
                console.log(4444,this.name);//输出为sang 
                //setTimeout()为异步函数 ,其中的this指向的为window,但是箭头函数把作用域固定在了setTimeout内部,所以输出不会变
            },0)
        }
    }
    obj.say();```
    
    几种箭头函数的使用方式
    

    var foo=()=>10;//简单的return 直接写在后面
    console.log(foo());

    let bar = (a,b,c)=>abc;
    console.log(bar(10,20,1))

    let a = (a,b)=>{//复杂逻辑关系要加上{},并且要有return
    //只是举个例子
    return a+b;
    }
    console.log(a(22,22))

    function b(callback){//有回调函数或者参数时,接收的方式
    callback();
    }
    b(function(){
    console.log(111);
    })

    b(()=>{console.log(2222)})```

    相关文章

      网友评论

          本文标题:ES6新加入的内容(1)

          本文链接:https://www.haomeiwen.com/subject/vfghkxtx.html