ES7
求幂运算符() **
let a=3;
console.log(a**=2);//9 此时a等于3的2次方,结果为9
Array.prototype.includes()方法
在数组中查找某个元素是否存在,返回值为布尔值,存在true,不存在false
与indexOf区别
共同点:
通过索引值逐个去查询目标元素,使用全等符(===)进行判断
不同点:
返回值不同,Array.prototype.includes()方法可以对NaN进行判断,认为NaN等于NaN
let arr=['a','b','c',1,2,3];
//一个参数情况
console.log(arr.includes(2));//true
console.log(arr.includes('f'));//false
//两个参数情况
console.log(arr.includes(2,2));//true 第二个参数表示从哪个下标位置开始找
console.log(arr.includes('b',2));//false
ES8
Object.entries()方法
将某个对象的可枚举(遍历)属性与值按照二维数组的方式返回
Object.entries({one:1,two:2})//[['one',1],['two',2]]
Object.entries([1,3])//[['0',1],['1',3]]
Object.values()方法
返回键值对中的值,结果是一维数组
Object.values({one:1,two:2});//[1,2]
Object.values({0:'a',1:'b',2:'c'});//['a','b','c']
Object.values([1,3]);//[1,3]
字符串填充padStart(),padEnd()
使得字符串达到固定长度.有两个参数,字符串目标长度和填充内容
'react'.padStart(10,'m');//mmmmmreact
'react'.padEnd(10,'m');//reactmmmmm
'react'.padStart(3,'m');//react
async,await异步解决方案(重难点)
async是异步的意思,用于声明异步函数,返回一个Promise对象
await是等待的意思,用于等待异步完成,再执行函数体内后面的语句
await只能在async函数中使用;通过try/catch来捕获异常;
在异步函数中,状态错误可以通过catch捕获到,如果是throw抛出错误,捕获不到
优点:代码结构更加简洁,逻辑也更加清晰,避免回调地狱
//生成一个Promise实例
let p =new Promise(function(resolve,reject){
setTimeout(function(){
//确定promise的状态为成功
resolve(30);
},2000)
})
//利用async await来完成后续代码
async function foo(){
let result =await p;//等待Promise对象的处理结果
console.log(result);
console.log('next code');
}
foo();
//通过try/catch来捕获异常
//生成一个Promise实例
let p =new Promise(function(resolve,reject){
setTimeout(function(){
//确定promise的状态为失败
reject("出错了");
//throw "出错啦 出错啦!";//在异步函数中,状态错误可以通过catch捕获到,如果是throw抛出错误,捕获不到
},2000)
})
async function foo(){
try{//等待Promise对象的处理结果
await p;//这里返回错误
}catch(error){
console.log(error);//这里捕捉到错误
}
}
foo();