一.ES7新增特性(只有2个呐!)
- 1、
includes()
; - 2、
求幂运算符(**);
使用es7
includes()
验证数组中是否存在某个元素,如果包含value返回true,否则返回false ;
testes7() { let arr = ['react', 'angular', 'vue'] if (arr.includes('react')) { console.log('React存在') } }
不使用es7
使用indexOf()
验证数组中是否存在某个元素,这时需要根据返回值是否为-1来判断
test() { let arr = ['react', 'angular', 'vue'] if (arr.indexOf('react') !== -1) { console.log('React存在') } },
两者比较:
注①:
includes与indexOf相似,但主要区别在于includes()可以查找NaN,而indexOf不能!includes 不区分+0 和 -0**
testes7() { let arr = ['react', NaN, 'vue'] if (arr.includes(NaN)) { console.log('includes可以查找NaN')// includes可以查找NaN } }, test() { let arr = ['react', NaN, 'vue'] if (arr.indexOf(NaN) === -1) { console.log('indexOf不可以查找NaN')// indexOf不可以查找NaN } },
[-0].includes(+0) true
**注②:
includes()返回的是布尔值,能直接判断数组中存不存在这个值,而indexOf()返回的是索引,但(两者都是采用===的操作符来作比较的)
总结
假如你只想知道某个值是否在数组中而并不关心它的索引位置,建议使用includes()。如果你想获取一个值在数组中的位置,那么你只能使用indexOf方法。
使用es7
x**y 返回X的Y次幂
不使用es7