ES7学习

ES7新增语法

1.includes
2.指数运算:**

  console.log(2**3 )  // Math.power(2,3)

ES8新增语法

1.Async/Await:更加语义化

(以前操作异步代码方式:1、嵌套回调 2.Promise 3.Generators)

async function add(num) {  //该函数返回一个promise
	return num + 2
}
add(2).then(res => {
	console.log(res)  // 3
}
await语法
function promiseFn() {
	return new Promise((resolve, reject) => {
		setTimeout(() => {
			reject('error')
		}, 1500)
	});
}
async function fn() {
	try {
		await promiseFn().catch(err => {  //捕获错误第2种方式,提前捕获
			console.log(err)   //err
		});
		console.log('我在错误后面不会执行')
	} catch(err) {  //捕获错误第1种方式
		console.log(err) // error
	}
}
fn()
使用Promise.all同步执行
function promiseFn() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('error')
        }, 1000)
    });
}

function promiseFn2() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('error')
        }, 2000)
    });
}

async function fn() {
    console.time('fn1');
    await promiseFn();
    await promiseFn2();
    console.timeEnd('fn1')  //fn1: 3001.0068359375ms //串行执行
}
fn()

async function fn2() {
    console.time('fn2');
    await Promise.all([promiseFn(), promiseFn2()])
    console.timeEnd('fn2')  //fn2: 2000.72705078125ms //同步执行
}
fn2()

2.Object.values()

和Object.keys()类似

const obj = {name: 'aa', age:4}
console.log(Object.keys(obj).map(key => obj[key]))  //["aa", 4]
console.log(Object.values(obj))  //["aa", 4]

3.Object.entries()

和for …in区别:for …in会枚举原型链中的属性

const obj = {name: 'aa', age:4}
console.log(Object.keys(obj).map(key => obj[key]))  //["aa", 4]
console.log(Object.values(obj))  //["aa", 4]


console.log(Object.entries(obj))  //  [["name", "aa"],["age", 4]]
console.log(Object.entries('abc'))  // [["0", "a"], ["1", "b"], ["2", "c"]]

//遍历对象的键,值
for (const [key, value] of Object.entries(obj)) {
     console.log(key, value)  //name aa age 4
 }

Object.entries(obj).forEach(([key, value]) => {
      console.log(key,value)  //name aa age 4
 })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值