ES6语法

最近在看vue项目 涉及一些es6语法,目前只写一些 看到的 ,别的有时间会补充

1、解构 

     解构使我们方便的从数组或对象中获得数据

        // ES6 解构 
        //数组
        const [x,y] = [1,2] //x = 1,y = 2

        // 对象
        const obj = {
            x:"王一博",
            y:"爱摩托"
        }
        const{x,y} = obj // x = 王一博,y = 爱摩托

        const {x:name,y:girlfriend} = obj
        console.log("name"+':'+name,"girlFriend"+':'+girlfriend)

 2、let const var 区别

          2.1、let和const不能预解析,有严格的块级作用域,不允许重复声明。

          2.2、let  var 声明变量  const 声明常量

         2.3、const 必须初始化

        // 1、let const 不存在变量提升
        console.log(a) // undefined 变量提升
        var a = '1'

        console.log(b) // error
        let b = '啧啧啧'


        // 2、let const 同一个作用域不能重复声明同一个变量
        var c = '1'
        var c = '10'
        console.log(c) // 10
        let d = '1'
        // let d = '10' // error
        d = '10' // 可 可以赋值
        console.log(d) // 10


        // 3、var 函数作用域  let const 块级作用域
        function fun(){
            var e = '1'
            if(true){
                var e = '100'
            }
            console.log(e) // 100
        }
        fun()

        function fun2(){
            let f = '1'
            if(true){
                let f = '100'
            }
            console.log(f) // 1
        }
        fun2()
        // // 4、const定义常量 且必须初始化
        const g = '1'
        g = '100' //error

        const h //error

 3、... 三点扩展运算符

       3.1、 将一个数组转换为用逗号分隔的参数序列

      

        let add = (x,y)=>x + y
        let num = [3,14]

        let result = add(...num) //17
    
        Math.max(...[63,23,43]) === Math.max(63,23,43) // true

       3.2、用push将一个数组添加到另一个数组的尾部

        let arr1 = [1,2,3]
        let arr2 = [4,5,6]
        //es5
        Array.prototype.push.apply(arr1,arr2) 
        console.log(arr1) //[1,2,3,4,5,6]
        
        //es6
        arr1.push(...arr2)

       3.3、合并数组

        //合并数组
        var arr1 = ['a','b']
        var arr2 = ['c','d']
        var arr3 = ['g']
        //es5的合并数组
        console.log(arr1.concat(arr2,arr3)) //返回一个新数组
        // es6 合并数组
        var newArr = [...arr1, ...arr2, ...arr3]

   concat() 连接两个或多个数组,返回一个新的数组。

       3.4、转换伪数组为真数组

   

        //转换伪数组为真数组
        var nodeList = document.querySelectorAll('p');
        var array = [...nodeList]; 

 4、set 和map

4.1 set 类似 数组  可用于去重(let 会去掉里面重复的元素)

        let arr = [1,2,3,2]
        let arr3 = new Set(arr)
        console.log(arr3) //这里返回的是一个 set形式的数组,不是一个真正的数组

        let arr2 = [...new Set(arr)]  // 这里用扩展运算符 解析成序列,再转为数组
        console.log(arr2)  //[1,2,3]

原文地址:https://www.cnblogs.com/lpp-11-15/p/11400331.html