持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情
ECMAScript 2016 新特性
最初的JavaScript版本号是ES5(2009)和ES6(2015)。从2016年开始,版本按年份命名:ECMAScript 2016、2017、2018、2019。
本章介绍 ECMAScript 2016 中的新特性:
- JavaScript 幂运算(**)
- JavaScript 求幂赋值(** =)
- javascript array.prototype.crudes
幂运算 Exponentiation operator
- 求幂运算符(**)返回第一个操作数的第二个操作数幂的结果
- 它也接受bigint作为操作数
- 幂运算是从右往左进行结合的:
a ** b ** c等于a ** (b ** c)
语法
2 * 5 ** 2 // 50
2 ** 3 // 8
2 ** 3 ** 2 // 512
题外话
幂运算 Exponentiation operator 这个让我想到了 Math.pow() 这个方法
Math.pow() 函数返回基数(base)的指数(exponent)次幂,即 base^exponent。 顺带一提: 由于
pow是Math的静态方法,所以应该像这样使用:Math.pow(),而不是作为你创建的Math对象的方法。
语法
幂运算:2 ** 3 ** 2 // 512
等价于:Math.pow(2, Math.pow(3, 2)
顺带一提
还有一个 Math.cbrt() 这个函数,该函数返回任意数字的立方根。
当然有立方根肯定有平方根啦 Math.sqrt()
没用的知识
重点内容假如你想求开三次方,或者四次方 可以借助pow方法
例如:Math.pow(27, 1/3)
结果为 3;就是对27的1/3次方 就是根号3下的27
求幂赋值 ( Exponentiation assignment (**=) )
- 取幂赋值操作符
(**=)它会将变量值进行幂运算之后,并对变量进行赋值操作
语法
操作: x **= y
等于: x = x ** y
Array.prototype.includes
- includes 查找一个值是否在数组中
- includes 还可以接收两个参数,第一个表示要查找的值,第二个表示从数组第 N 个元素开始查找。
[1, 2, 3].includes(3) //true
['a', 'b', 'c'].includes('d') //false
[1, 2, 3].includes(3, 2) // true
[1, 2, 3].includes(3, 3) // false
[1, 2, 3].includes(3, -1) // true
[1, 2, NaN].includes(NaN) // true
题外话
includes的出现,大大优化了array.indexof(element)!== -1 的判断数据是否存在的直观方式;
这也让我想到了 some、every、findIndex、find 这几个和 indexof、includes有些异曲同工之妙的api
| some | every | findIndex | find |
|---|---|---|---|
| 判断是否有一个元素符合条件 | 判断是否所有元素符合条件 | 查找符合条件的第一个元素下标 | 查找符合条件的第一个元素 |