前端es6常用语法,一起来看看吧

ES6简介

  ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版

  15年就有正式版本了,但是国内普遍商用是在2018年之后去了,甚至到现在有很多前端仍然搞不懂ES6 ES6 的出现主要是为了解决 ES5
的先天不足,比如 JavaScript 里并没有类的概念

  目前存在少数低版本浏览器的 JavaScript 是 ES5 版本,大多数的浏览器已经支持 ES6

   ES6提供了大量的语法糖,让你写代码的时候简直不要太爽!

  你必须要知道的是:现在各企业都在普遍的使用,不会ES6意味着你很难找到工作,上班了你可能连别人的代码都看不懂
   ES6中出现了很多新的方法,熟练的使用这些方法可以有效地提升我们的工作效率,让我们尽早的完成工作任务!

请添加图片描述

ES6常用方法

forEach

  用于循环遍历数组,对for循环的封装,没有返回值
  用法:

    let arr = [23,4,54,456,234,65,2,12]
    let arrObj = [
        {name:'张三',age:18,sex:'男'},
        {name:'李四',age:13,sex:'女'},
        {name:'王五',age:7,sex:'女'},
        {name:'老六',age:70,sex:'男'},
    ]
    // element表示当前元素,index表示当前元素所在下标,self表示当前调用的数组arr
    arr.forEach((element,index,self)=>{
        console.log('当前元素:',element,'下标:',index,'当前调用数组:',self);
    })
    arrObj.forEach((element)=>{
        console.log('名称:',element.name);
    })

  运行结果:
在这里插入图片描述

filter

  用于筛选过滤数组,返回符合筛选条件的数据,不会改变原数组。
  用法:

    let arr = [23,4,54,456,234,65,2,12]
    let arrObj = [
        {name:'张三',age:18,sex:'男'},
        {name:'李四',age:13,sex:'女'},
        {name:'王五',age:7,sex:'女'},
        {name:'老六',age:70,sex:'男'},
    ]
    // element表示当前元素,index表示当前元素所在下标,self表示当前调用的数组arr
    let arrFilter = arr.filter((element,index,self) =>{
        // console.log(ele,index,self);// 自己测试
        return element>20
    })
    console.log('arrFilter',arrFilter);
    let arrFilter2 = arrObj.filter((element)=>{
        return element.age>15
    })
    console.log('arrFilter2',arrFilter2);

  运行结果:
在这里插入图片描述

map

  用于循环遍历数组,也可以根据某些条件筛选数据,不会改变原数组。
  用法:

    let arr = [23,4,54,456,234,65,2,12]
    let arrObj = [
        {name:'张三',age:18,sex:'男'},
        {name:'李四',age:13,sex:'女'},
        {name:'王五',age:7,sex:'女'},
        {name:'老六',age:70,sex:'男'},
    ]
    // element表示当前元素,index表示当前元素所在下标,self表示当前调用的数组arr
    let arrMap = arr.map((element,index,self)=>{
        // console.log(element,index,self);// 自己测试
        return element*10
    })
    console.log('arrMap',arrMap);
    let arrMap2 = arrObj.map((element)=>{
        return element.age+1
    })
    console.log('arrMap2',arrMap2);

  运行结果:
在这里插入图片描述

find

  查找第一个符合条件的数组元素。当条件成立为true时,返回该元素。如果没有符合条件的元素,返回值为undefined。不会改变原数组。
  用法:

    let arr = [23,4,54,456,234,65,2,12]
    let arrObj = [
        {name:'张三',age:18,sex:'男'},
        {name:'李四',age:13,sex:'女'},
        {name:'王五',age:7,sex:'女'},
        {name:'老六',age:70,sex:'男'},
    ]
    // element表示当前元素,index表示当前元素所在下标,self表示当前调用的数组arr
    let arrFind = arr.find((element,index,self)=>{
        // console.log(element,index,self);// 自己测试
        // return element === 20
        return element === 54
    })
    console.log("arrFind",arrFind);
    let arrFind2 = arrObj.find((element)=>{
        // return element.sex === 20
        return element.sex === '女'
    })
    console.log("arrFind2",arrFind2);

  运行结果:
在这里插入图片描述

findIndex

  findIndex()与find()的使用方法相同,只是当条件为true时findIndex()返回的是索引值,而find()返回的是元素。如果没有符合条件元素时findIndex()返回的是-1,而find()返回的是undefined。不会改变原数组。
  用法:

    let arr = [23,4,54,456,234,65,2,12]
    let arrObj = [
        {name:'张三',age:18,sex:'男'},
        {name:'李四',age:13,sex:'女'},
        {name:'王五',age:7,sex:'女'},
        {name:'老六',age:70,sex:'男'},
    ]
    // element表示当前元素,index表示当前元素所在下标,self表示当前调用的数组arr
    let arrFindIndex = arr.findIndex((element,index,self)=>{
        // console.log(element,index,self);// 自己测试
        // return element === 20
        return element === 54
    })
    console.log("arrFindIndex",arrFindIndex);
    let arrFindIndex2 = arrObj.findIndex((element)=>{
        // return element.sex === '11'
        return element.sex === '男'
    })
    console.log("arrFindIndex2",arrFindIndex2);

  运行结果:
在这里插入图片描述

reduce

  对元素进行数据处理,返回最终处理的结果,不会改变原数组。
  用法(累加器):

    let arr = [10,20,30,40]
    let arrObj = [
        {name:'张三',age:18,sex:'男'},
        {name:'李四',age:13,sex:'女'},
        {name:'王五',age:7,sex:'女'},
        {name:'老六',age:70,sex:'男'},
    ]
    // preValue表示上一次的元素,element表示当前元素,index表示当前元素所在下标,self表示当前调用的数组arr
    let arrReduce = arr.reduce((preValue,element,index,self)=>{
        // console.log(preValue,element,index,self);// 自己测试
        return element+preValue
    },10)//10表示preValue初始化的值
    console.log('arrReduce',arrReduce);
    // 如果没有初始化preValue,则preValue是一个空对象,第一次不执行
    let arrReduce2 = arr.reduce((preValue,element,index,self)=>{
        // console.log(preValue,element,index,self);// 自己测试
        return element+preValue
    })//10表示preValue初始化的值
    console.log('arrReduce2',arrReduce2);
    let arrReduce3 = arrObj.reduce((preValue,element)=>{
        // console.log(preValue,element);// 自己测试
        return element.age+preValue
    },10)//10表示preValue初始化的值
    console.log('arrReduce3',arrReduce3);
    // 如果没有初始化preValue,则preValue是一个空对象
    let arrReduce4 = arrObj.reduce((preValue,element)=>{
        // console.log(preValue,element);// 自己测试
        return element.age+preValue
    })//10表示preValue初始化的值
    console.log('arrReduce4',arrReduce4);

  运行结果:
在这里插入图片描述

every

  只要有一个不满足,就不通过,返回Boolean值,不会改变原数组。
  用法:

    let arr = [23,4,54,456,234,65,2,12]
    let arrObj = [
        {name:'张三',age:18,sex:'男'},
        {name:'李四',age:13,sex:'女'},
        {name:'王五',age:7,sex:'女'},
        {name:'老六',age:70,sex:'男'},
    ]
    // element表示当前元素,index表示当前元素所在下标,self表示当前调用的数组arr
    let arrEvery = arr.every((element,index,self)=>{
        // console.log(element,index,self);// 自己测试
        // return element>0
        return element>50
    })
    console.log('arrEvery',arrEvery);
    let arrEvery2 = arrObj.every((element)=>{
        // return element.age>0
        return element.age>20
    })
    console.log('arrEvery2',arrEvery2);

  运行结果:
在这里插入图片描述

some

  只要有一个满足,就通过,返回Boolean值,不会改变原数组。
  用法:

    let arr = [23,4,54,456,234,65,2,12]
    let arrObj = [
        {name:'张三',age:18,sex:'男'},
        {name:'李四',age:13,sex:'女'},
        {name:'王五',age:7,sex:'女'},
        {name:'老六',age:70,sex:'男'},
    ]
    // element表示当前元素,index表示当前元素所在下标,self表示当前调用的数组arr
    let arrSome = arr.some((element,index,self)=>{
        // console.log(element,index,self);// 自己测试
        // return element>1000
        return element>100
    })
    console.log('arrSome',arrSome);
    let arrSome2 = arrObj.some((element,index,self)=>{
        // console.log(element,index,self);// 自己测试
        // return element.age>20
        return element>100
    })
    console.log('arrSome2',arrSome2);

  运行结果:
在这里插入图片描述

reduce

  includes 接收一个回调函数作为累加器,对数据进行相应的计算
  用法:

    let arr = [3,4,7,8]
    // pre:上一个的值(一般为数字), current:当前值, index:下标(非必填), self:当前数组(非必填)
    let filterArr = arr.reduce((pre, current, index , self) => {
        console.log(pre, current, index, self)
        return pre + current
    }, 20)// 20为定义的初始值(非必填)
    console.log(filterArr)
    
    let arr2 = [{count: 3},{count: 4},{count: 7},{count: 8}]
    // pre:上一个的值(一般为数字), current:当前值, index:下标(非必填), self:当前数组(非必填)
    let filterArr2 = arr2.reduce((pre, current, index , self) => {
        console.log(pre, current, index, self)
        return pre + current.count
    }, 20)// 20为定义的初始值(非必填)
    console.log(filterArr2)

  运行结果:
在这里插入图片描述

  如果没有放入初始值,会以数组中的第一个元素为初始值

let arr = [3,4,7,8]
// pre:上一个的值, current:当前值, index:下标(非必填), self:当前数组(非必填)
let filterArr = arr.reduce((pre, current, index , self) => {
    console.log(pre, current, index, self)
    return pre + current
})// 去除初始值
console.log(filterArr)

  运行结果:
在这里插入图片描述

includes

  includes 可以判断一个数组中是否包含某一个元素,并返回true 或者false
  用法:

    // 原生方法
    let arr = ['a', 'b', 'c']
    let flag = false
    arr.forEach(item => {
        if (item === 'd') {
            flag = true
        }
    })
    if (flag) {
        console.log('arr中包含该数')
    } else {
        console.log('arr中不包含该数')
    }
    // 结果:arr中不包含该数
    // includes方法
    let arr = ['a', 'b', 'c']
    if (arr.includes('d')) {
        console.log('arr中包含该数')
    } else {
        console.log('arr中不包含该数')
    }
    // 结果:arr中不包含该数

补充:includes可以包含两个参数,第二个参数表示判断的起始位置

    console.log(['a', 'b', 'c'].includes('b',1)) // true
    console.log(['a', 'b', 'c'].includes('b',2)) // false

Object.key, Object.values, Object.entries

  获取对象的属性名,属性值
  用法:

    let obj = {
        age: '18',
        name: '张三',
        love: '打篮球'
    }
    console.log(Object.keys(obj))
    console.log(Object.values(obj))
    console.log(Object.entries(obj))

  运行结果:
在这里插入图片描述

flat

  用于将嵌套的数组“拉平”,flat参数为几,那么是将几层数组拉平到一层数组,Infinity为无限层级(Infinity表示无穷大)
  用法:

    let arr = [1, 2, ['a', 'b'], 'a', [1, [1, 2, [1]]]]
    console.log(arr.flat(1))
    console.log(arr.flat(2))
    console.log(arr.flat(3))
    console.log(arr.flat(1000))
    console.log(arr.flat(Infinity))
    console.log([...new Set(arr.flat(Infinity))])// 利用Set方法去重

  运行结果:

在这里插入图片描述

  • 12
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值