0
点赞
收藏
分享

微信扫一扫

ES2016(ES7)

这几天整理的一下过往的文章和笔记,备份到了 Github 上,地址👉 ​​blog​​。


ES2016 包含了两个新的功能:

  • 幂运算符(​​**​​​ 和​​**=​​)
  • 数组方法​​Array.prototype.includes​

Array.prototype.includes()

​​includes()​​​ 确定给定元素是否包含在指定数组中。如果存在返回 ​​true​​​,否则返回 ​​false​​。

const arr = [10, 11, 3, 20, 5]

const includesTwenty = arr.includes(20)
console.log(includesTwenty) // true

​includes​​​ 方法还接受一个可选参数来指定要从中搜索的索引。默认情况下,​​index​​ 参数为零。

const arr = [1, 2, 3, 4, 5]

if(arr.includes(3, 2)) {
console.log('item found')
} else {
console.log('item not found')
}

拓展

​includes​​​ 类似于 ​​indexOf​​:

arr.includes(x)
arr.indexOf(x) >= 0

主要区别在于 ​​includes()​​​ 查找 ​​NaN​​​,而 ​​indexOf()​​ 没有:

[NaN].includes(NaN) // true
[NaN].indexOf(NaN) // -1

​includes​​​ 不区分 ​​+0​​​ 和 ​​-0​​​,几乎所有 JavaScript 都是这样工作的(除了 ​​Object.is​​):

[-0].includes(+0) //true
Object.is(+0, -0) // false

类型化数组也将有一个方法 ​​includes()​​:

let tarr = Uint8Array.of(12, 5, 3)
console.log(tarr.includes(5)) // true

幂运算符(​​**​​​ 和 ​​**=​​)

ES7 中引入了幂运算符(Exponentiation operator)**​​,​​**​​​ 具有与 ​​Math.pow(..)​​ 等效的计算结果。

例如:​​a ** b​​​ 是 ​​Math.pow(a, b)​​​ 的简写,​​a **= b​​​ 是 ​​a = a ** b​​ 的简写

console.log(2 ** 3) // 8
console.log(Math.pow(2, 3)) // 8

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

幂赋值运算符使一个变量为底数、以右值为指数的指数运算(乘方)结果赋给该变量。

举报

相关推荐

0 条评论