欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ES7新特性——Array.prototype.includes()、幂运算 **

程序员文章站 2022-07-16 15:14:19
...

1、Array.prototype.includes()方法

Array.prototype.includes()的作用,是查找一个值在不在数组里,若在,则返回true,反之返回false。
Array.prototype.includes()方法接收两个参数:要搜索的值和搜索的开始索引。当第二个参数被传入时,该方法会从索引处开始往后搜索(默认索引值为0)。若搜索值在数组中存在则返回true,否则返回false。
基本用法

// 不传入第二个参数时,默认从头开始索引
console.log( ['a', 'b', 'c'].includes('a') )    // true  
console.log( ['a', 'b', 'c'].includes('d') )    // false
// 我们会联想到ES6里数组的另一个方法indexOf,下面的示例代码是等效的:
console.log( ['a', 'b', 'c'].indexOf('a') > -1  )    //true

// 第二个参数被传入时,该方法会从索引处开始往后搜索
['a', 'b', 'c', 'd'].includes('b', 1)      // true  
['a', 'b', 'c', 'd'].includes('b', 2)      // false

let demo = [1, NaN, 2, 3]    
console.log( demo.indexOf(NaN) )    //-1  (匹配不到)
console.log( demo.includes(NaN) )     //true (匹配得到)

提示:由于includes()对NaN的处理方式与indexOf()不同。假如你只想知道某个值是否在数组中而并不关心它的索引位置,建议使用includes()。如果你想获取一个值在数组中的位置,那么你只能使用indexOf方法。

2、求幂运算符( ** )

基本用法

console.log( 2 ** 3) // 8
let a = 3
a **= 2
console.log(a)   // 9

效果同:

console.log( Math.pow(3, 2) )   // 9

**是一个用于求幂的中缀算子,比较可知,中缀符号比函数符号更简洁,这也使得它更为可取。

如果想了解更多es7/es8新特性:
参考原文:https://blog.csdn.net/zuggs_/article/details/80650436