我一般会在周末更新一篇文章,不一定会是什么,有时候心血来潮就去看一些东西,别人写的ES6我可能觉得不太好,或者我用着不太方便,我就自己写我自己的、只是加强一边记忆而已。
let 块级作用域
123456use strictif(true) {let fruit = 'apple'}console.log(fruit) //fruit is not definedconst 常量
123456const name = 'apple'name = 'banana'//Assignment to constant variableconst name = {foo : 'apple' }name.foo = 'banana'//可以正常运行解构数组
123let foo = ['one','two','three']let [one,two,three] =fooconsole.log(one,two,three)// one,two,three解构对象
只需保证key可以对应就行,也可只取name
123let obj = { name:'chuang',age:22,sex:'男'}let {name,age,sex} = objconsole.log(name,age,sex)//chuang 22 男箭头函数
1234567891011let add = (a,b) => { return a+b }//当后边是表达式的时候也可以简写let add = (a,b) => a+b// 他们等同于let add =function(a,b){return a+b}//在回调中也可以使用let nums =[1,2,3]let doublenum = num.map( i => i*2)console.log(doublenum)//[2,3,6]this 在箭头函数中的作用
12345678910let age =2;let student = {age:1,grow: function() {setTimeout(() => {console.log(++this.age)},100)}}student.grow()//2对象表达式
123let a=1,b=2;let obj ={a,b}console.log(obj)//Object {a: 1, b: 2}Rest参数
当一个函数的最后一参数有’…’ 这样的前缀,他会变成一个参数的数组
12345678funtion test(...args) {console.log(args)}test(2,3,4)//[2,3,4]funtion test2(name,...args) {console.log(args)}test2('chuang',2,3,1)//[2,3,1]展开操作符
用于函数调用
123function test(x,y,z) {}let args =[0,1,2]test(..args)用于数字面量
1234let arr1 =[1,2,3]let arr2 =[4,5,6]let arr3 =[...arr1,arr2]console.log(arr3)//[1, 2, 3, 4, 5, 6,]对象的展开操作符
123let mike = { name: 'chuang',sex: 'male'}mike ={...mike,age:50}console.log(mike)//{name: 'chuang',sex: 'male',age:50}