1.includes (ES7) == indexOf
判断元素是否存在于一个数组中,存在true,不存在false
例:
const arr = [‘Tom’,‘Jarry’,‘xiaomMng’,‘xiaoHong’]
判断
arr.includes(‘Tim’); -------返回false
arr.includes(‘Jarry’); -------返回true
2.( ES7) 幂运算**
例子:
计算2的10次方
2**10 == Math.pow(2,10)
3.async和await (ES8) ------- 异步编程
async和await两种语法结合可以让一步代码向同步代码一样
①async函数
1.async函数的返回值是promise对象
2.promise对象的结果由async函数执行的返回值决定
②await表达式
1.await必须写在async函数中
2.await右侧的表达式一班为promise对象
3.await返回的值是promise成功的值
4.await的promise失败了,就会抛出异常,需通过try…catch捕获处理
例1:
async function fun( ){
①//返回结果不是一个promise类型的对象,则返回结果是成功的promise对象
②//返回的结果是一个promise对象,promise对象的状态由函数返回结果决定
return new Promise((resolve,reject) => {
resolve(‘成功的数据’)
})
}
const result = fun( ) //返回一个promise对象
例2:
//创建promise对像
const p = new Promise((resolve,reject) => {
resolve(“成功的值!”)
reject(“失败了”)
})
**//await 要放在async函数中 (resolve时) **
async function main( ){
let result = await p;
console.log(result)
}
//await 要放在async函数中 (reject时) try…catch捕获
async function main( ){
try{
let result = await p;
console.log(result)
}catch(e){
console.log(e); ----得到失败的结果
}
}
//调用函数 main
main( ) ----成功的值(resolve)
main( ) ----失败了(reject)
4.对象方法扩展 (ES8)
//声明对象
const school = {
name:‘上规格’,
city:[‘a’,‘b’,‘c’,‘d’],
xueke:[‘前端’,‘java’,‘c#’,‘大数据’]
}
//获取对象所有的键 Object.keys( )
console.log( Object.keys(school)) -----[name,city,xueke]
//获取对象所有的值 Object.values( )
console.log( Object.values(school)) ----数组形式保存key对应的值
//Object.entries( ) 返回键与值(数组)
console.log(Object.entries(school))
//创建Map
const m = new Map(Object.entries(school))
//对象属性的描述对象
object.getOwnPropertyDescriptors()