ES6-ES12常用语法汇总(下篇)

  1. includes
传入元素,如果数组中能找到此元素,则返回true,否则返回false

const includeArr = [1,2,3,'小明','科比']
const isKobe = includeArr.includes('科比')
console.log(iskobe) // true

跟indexOf很像,但还是有区别的

const arr = [1,2,NaN]
console.log(arr.indexOf(NaN)) // -1 indexOf找不到NaN
console.log(arr.includes(NaN)) // true  includes 能找到NaN

  1. 求幂运算符
以前求幂,写法
const num = Math.pow(3,2)  // 9

ES7提供了求幂运算符:**
const num = 3 ** 2 // 9

  1. Object.values
可以用来获取对象的value的集合
const obj = {
	name: 'xiaoming',
	age: 22,
	gender: '男'
}
const values = Object.values(obj)
console.log(values) // ['xiaoming',22,'男']
  1. Object.entries
可以用来获取对象的键值对集合
const obj = {
	name: 'xiaoming',
	age: 22,
	gender: '男'
}
const entries = Object.entries(obj)
console.log(entries)
//[['name','xiaoming'],['age',22],['gender','男']]
  1. async/await
工作中,我们会遇到这种场景,接口一,请求到数据一,
而数据一被当做请求二的参数去请求数据二,我们会用promise这么做
function fn() {
  // 模拟第一次请求
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(5)
    }, 1000)
  }).then(res => {
    // 模拟第二次请求
    new Promise((resolve, reject) => {
      setTimeout(() => {
        // 拿第一次请求的数据去乘10,当做第二次请求的数据
        resolve(res * 10)
      }, 2000)
    }).then(sres => {
      console.log(sres)
    })

  })
}
fn() // 1 + 2 = 3 3秒后输出 50


这样的嵌套是不美观的,如果有很多个接口,那就会嵌套很多层,
此时我们可以使用async/await来以同步方式执行异步,注意以下几点:

.await只能在async函数里使用
.await后面最好接Promise,如果后面接的是普通函数则会直接执行
.async函数返回的是一个Promise
function fn1 () {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(5)
    }, 1000)
  })
}

function fn2 (data) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(data * 10)
    }, 2000)
  })
}

async func
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值