ES2016 正式名称叫做 ECMAScript2016,发布于 2016 年 6 月,与 ES2015 相比 ES2016 只是一个小版本更新,只包含两个小功能。
首先,就是数组实例的 includes()
方法,这个方法可以用来检查数组当中是否包含指定成员变得更加简单。在这之前想要检查某个数组当中是否存在某个指定的成员,就必须使用数组的 indexOf()
方法来实现。如下代码所示:
const arr = ['foo', 1, NaN, false]
console.log(arr.indexOf('foo'))
上述代码的运行结果如下:
0
从打印的结果可以看到,indexOf()
方法可以返回成员在数组中的索引值。在没有找到指定成员的情况下,这个方法会返回 -1
。如下代码所示:
const arr = ['foo', 1, NaN, false]
console.log(arr.indexOf('bar'))
上述代码的运行结果如下:
-1
但是这种方式判断数组当中是否存在某一个成员也会存在一个问题,就是不能查找数组当中为 NaN
的成员。如下代码所示:
const arr = ['foo', 1, NaN, false]
console.log(arr.indexOf(NaN))
上述代码的运行结果如下:
-1
ECMAScript2015 之后为数组新增的 includes()
方法就可以直接检查数组当中是否存在某个成员,这个方法返回一个 Boolean 值来表示存在还是不存在。如下代码所示:
const arr = ['foo', 1, NaN, false]
console.log(arr.includes('foo'))
上述代码的运行结果如下:
true
还有就是 includes()
方法相比于 indexOf()
方法来讲,includes()
方法可以用来查找 NaN
这样的数值。如下代码所示:
const arr = ['foo', 1, NaN, false]
console.log(arr.includes(NaN))
上述代码的运行结果如下:
true
除了数组实例的 includes()
方法之外,ECMAScript2016 还新增了指数运算符。在 ECMAScript2016 之前想要进行指数计算的话,需要借助 Math
对象的 pow()
方法来实现。如下代码所示:
console.log(Math.pow(2, 10))
上述代码的运行结果如下:
1024
ECMAScript2016 新增的指数运算符就是在 JavaScript 语言层面可以直接进行指数计算,就像加减乘除运算符一样。如下代码所示:
console.log(2 ** 10)
上述代码的运行结果同样为 1024
。这个指数运算符对于数学密集型的应用是一个很好的补充,不过在日常的应用开发很少会用到指数计算