JavaScript 的版本
JavaScript这种语言的基本语法结构是由ECMAScript来标准化的, 所以我们说的JavaScript版本一般指的是ECMAScript版本
ES7 新特性(2016)
1.Array.includes()
- 在 ES6 中我们有 **String.includes()**可以查询给定字符串是否包含一个字符
- 在 ES7 中,我们在数组中也可以用 Array.includes方法来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false。
const arr = [1,3,5,2,'8',NaN]
arr.includes(1) // true
arr.includes(1,2) // false 该方法的第二个参数表示搜索的起始位置,默认为 0
arr.includes('1') // false
arr.includes(NaN) // true
2.求幂运算符
在 ES7 中引入了指数运算符,就像+、- 等操作符一样,具有与 Math.pow() 等效的计算结果
console.log(2**10); // 输出 1024
console.log(Math.pow(2,10)) // 输出 1024
ES8 新特性(2017)
1.Async/Await
假如有这样一个使用场景:需要先请求 a 链接,等返回信息之后,再请求 b 链接的另外一个资源。基于这个原因,ES8 引入了 async/await,异步迭代器(asynchronous iterators),提供了在不阻塞主线程的情况下使用同步代码实现异步访问资源的能力,并且使得代码逻辑更加清晰
async function fun(){
}
try{
let res =await axios({
url:'xxxx
console.log(res)
let res2 =await axios({
url:'xxxx'})
console.log(res2)
}catch (err){
console.error(err)
}
fun()
2.Object.values()
Object.values()
是一个与Object.keys()
类似的新函数,但返回的是Object自身属性的所有值,不包括继承的值。
const obj = {
a: 1, b: 2, c: 3};
const values=Object.values(obj);
console.log(values); //[1, 2, 3]
Object.values(obj).forEach(value=>console.log(value)) // 1, 2, 3
3.Object.entries()
Object.entries()
函数返回一个给定对象自身可枚举属性的键值对的数组。
const obj = {
a: 1, b: 2, c: 3};
for(let [key,value] of Object.entries