新手回顾:ECMAScript 2016 新特性

153 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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 的判断数据是否存在的直观方式;

这也让我想到了 someeveryfindIndexfind 这几个和 indexof、includes有些异曲同工之妙的api

someeveryfindIndexfind
判断是否有一个元素符合条件判断是否所有元素符合条件查找符合条件的第一个元素下标查找符合条件的第一个元素