es6的一些新特性

0.javascript严格模式
    'use strict'
1.let和const
    let可以声明具有块级作用域的变量,const是用来定义常量的。
    let 不可重复声明一个变量。const 声明变量后不可改变,相当于常量
2.箭头函数
    let fun = (params)=>{}
3.为函数参数设定默认值
    let foo = (x,y=100)=>{
        return x+y
    }
    foo(1)    //101
4.rest参数
    用于接收所有未定义参数,类比arguments对象
    let bar = (a,b,...params)=>{
        console.log(...params)
    }
    bar(1,2,3,4,5)    //[3,4,5]
5.三点操作符
    console.log(...[1,2,3,4])    //1 2 3 4
    console.log(..."hello world")    //h e l l o   w o r l d
6.解构
    let [pig,dog] = ["jack","rose"];
    console.log(pig)    //jack
    console.log(dog)    //rose
    let obj = {
        capital:"beijing"
        magic:"shanghai"
    }
    let {capital,magic} = obj;
    console.log(capital)    //beijing
    console.log(magic)        //shanghai
7.模板字符
    let [dog,pig] = ['donald','trump'];
    console.log(`my dog name is ${dog} and my pig name is ${pig}`)
    //my dog name is donald and my pig name is trump
    //模板字符不适用引号‘’,而是使用间隔号``
8.Promise
    var p = new Promise((resolve,reject)=>{
        //承诺兑现执行resolve(),承诺不兑现执行reject()  resolve()和reject()可以传递参数
    }).then(()=>{
        console.log(‘成功’)
    }).catch(()=>{
        console.log(‘失败’)
    })
    **Promise最大的好处是在流程中,把执行的代码和处理结果的代码分离。
    **Promise因此特性最适用于异步执行
    参考廖雪峰的个人网站关于Promise部分
    https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014345008539155e93fc16046d4bb7854943814c4f9dc2000#0
9.Set&&Map(es6新的数据结构)
    Set(类似于数组,成员值唯一)
        let set = new Set([1,2,3,3])
        console.log(set)    //[1,2,3]
        
        console.log(set.has(1))        //true
        console.log(set.add(4))        //[1,2,3,4]
        console.log(set.delete(1))    //true
        
        set.clear()
        console.log(set)            //[]
        
        add(value):添加某个值,返回Set结构本身。
        delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
        has(value):返回一个布尔值,表示该值是否为Set的成员。
        clear():清除所有成员,没有返回值
    
    Map()
            let map = new Map();
            let obj = {};
            map.set(obj,'这是obj');

            console.log(map);            //Map(1){“size”:"1"....}
            console.log(map.get(obj))    //这是obj
            
            Map对象同样拥有has、delete、clear方法
            通过keys()、values()、entries()、forEach()

10.class
    class classname {
        constructor(){
            this指向当前成员(实例,对象)
            super()     父构造函数,this指向当前成员(实例,对象)
            this       this指向当前成员(实例,对象)
        }
        // 成员方法(存储在构造函数原型中,可通过实例调用)
        functionName(){
            this指向当前成员(实例,对象)
        }
        // 静态方法(存储在构造函数中,只能通过构造函数调用)
        static functionName(){
            this指向当前类
        }
    }
11.moudle
    export default
    export
    import

猜你喜欢

转载自blog.csdn.net/qq_41391628/article/details/83183008