ES6基础知识总结(上)

59 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情 >


变量 var&let&const

var:可以重复声明,变量可以修改,可变量提升。
let:不能重复声明,变量可以修改,块级作用域,不可变量提升。
const:不能重复声明,变量不可以修改,块级作用域,不可变量提升。

箭头函数 ()=>{}

如果只有一个参数,()可以省略。 如果只有一个return,{}可以省略。

//完整写法 
let fun=function(a){ return a*2; } 
//箭头函数 
let fun=(a)=>{return a*2} let fun=a=>a*2

参数扩展

rest 参数 :收集剩余的参数——收集参数
function show(a,b,...args){ alert(args) } show(1,2,3,4,5) 
//弹窗【3,4,5】

rest parameter必须是最后一个

展开数组
let arr=[1,2,3]; 
function show(a,b,c){ 
    alert(a); 
    alert(b); 
    alert(c); 
    } 
show(1,2,3) show(...arr) 
//上下等同 
let arr1=[1,2,3]; 
let arr2=[4,5,6]; 
let arr3=[...arr1,...arr2]; 
//[1,2,3,4,5,6]
//参数扩展与数组展开嵌套使用 
function show(...args){ fn(...args); } 
function fn(a,b){ alert(a+b); }

展开后的效果,跟直接把数组的内容写在这儿一样

默认参数
function show(a,b=2,c=3){ console.log(a,b,c) } 
show(1) 
//【1,2,3】 
show(1,1) 
//【1,1,3】

传递参数时使用传递的参数,没有传递参数时使用默认的参数

解构赋值

左右两边结构必须一样
右边必须是个东西——合理
声明和赋值不能分开(必须在一句话内完成)\

let [json,[num1,num2],num,str]=[{a:12,b:21},[1,2],8,'name'] 
//可以自定义粒度 
console.log(json,num1,num2,num,str) 
//Object{a:12,b:21},1,2,8,"name"

数组

map—映射 一一对应

let arr=[1,2,3] 
let result1=arr.map(function(item){ return item*2; }) 
let result1=arr.map(item=>item*2) 
let result2=arr.map(item=>item>2?'>2':'<2') 
alert(result1); 
//【2,4,6】 
alert(result2); 
//【'<2','<2','>2'】

reduce—汇总 一堆出来一个

let arr=[1,2,3,4]; 
let result=arr.reduce(function(tmp,item,index){ 
    //tmp-中间结果 item-计算值 index-计算下标 【index从1开始,0作为第一个tmp】 
    if(index!=this.length-1){ 
    //不是最后一次 
        return tmp+item; 
        //求和
   }else{ 
        return (tmp+item)
        //arr.length; 
} })

filter—过滤器

let arr=[12,2,3,8,6,9]; 
let result=arr.filter(item=>{ if(item%3==0){ 
    return true; 
    //保留 
}else{ 
    return false; 
    //过滤 
} }) 
let result=arr.filter(item=>item%3==0); 
console.log(result) 
//【12,3,6,9】

forEach—循环(迭代)

let arr=[1,2,3,4]; 
arr.forEach((item,index)=>{ 
    alert(index,":",item) 
})

如果有哪里描述不准确或者有问题,欢迎大佬指正!
(≖ᴗ≖)✧