ES7和ES8........
使用indexOf()验证数组中是否存在某个元素,这时需要根据返回值是否为-1来判断:
let arr = ['react', 'angular', 'vue']; if (arr.indexOf('react') !== -1) { console.log('react存在'); } 复制代码
使用includes()验证数组中是否存在某个元素,这样更加直观简单:
let arr = ['react', 'angular', 'vue']; if (arr.includes('react')) { console.log('react存在'); } 复制代码
2.指数操作符
在ES7中引入了指数运算符**,**具有与Math.pow(..)等效的计算结果。
使用自定义的递归函数calculateExponent或者Math.pow()进行指数运算:
function calculateExponent(base, exponent) { if (exponent === 1) { return base; } else { return base * calculateExponent(base, exponent - 1); } } console.log(calculateExponent(2, 10)); // 输出1024 console.log(Math.pow(2, 10)); // 输出1024 复制代码
使用指数运算符**,就像+、-等操作符一样:
console.log(2**10);// 输出1024 复制代码
2.Object.values()
Object.values()是一个与Object.keys()类似的新函数,但返回的是Object自身属性的所有值,不包括继承的值。
假设我们要遍历如下对象obj的所有值:
const obj = {a: 1, b: 2, c: 3};
复制代码
不使用Object.values() :ES7
const vals=Object.keys(obj).map(key=>obj[key]); console.log(vals);//[1, 2, 3] 复制代码
使用Object.values() :ES8
const values=Object.values(obj1); console.log(values);//[1, 2, 3] 复制代码
从上述代码中可以看出Object.values()为我们省去了遍历key,并根据这些key获取value的步骤。
3.Object.entries
Object.entries()函数返回一个给定对象自身可枚举属性的键值对的数组。
接下来我们来遍历上文中的obj对象的所有属性的key和value:
不使用Object.entries() :ES7
Object.keys(obj).forEach(key=>{ console.log('key:'+key+' value:'+obj[key]); }) //key:a value:1 //key:b value:2 //key:c value:3 复制代码
使用Object.entries() :ES8
for(let [key,value] of Object.entries(obj1)){ console.log(`key: ${key} value:${value}`) } //key:a value:1 //key:b value:2 //key:c value:3 复制代码

浙公网安备 33010602011771号