最近在看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]