ES2016 中对 Javascript 的新增和改进
数组方法 includes
Array.prototype.includes(value : any) : boolean
// 如果value是当前数组的元素则返回true,否则返回false。
includes 和 indexOf 方法很类似,以下表达式是相等的:
arr.includes(x);
arr.indexOf(x) !== -1;
主要的不同是 includes 能找到 NaN 元素,但 indexOf 不能:
[NaN].includes(NaN); // true
[NaN].indexOf(NaN); // -1
此外类数组也有 includes 方法
let tarr = Uint8Array.of(12, 5, 3);
tarr; // Uint8Array(3) [12, 5, 3]
console.log(tarr.includes(5)); // true
幂运算符 **
**是一个求幂中缀运算符,以下两个表达式的值相等:
x ** y;
Math.pow(x, y);
例子
const squared = 3 ** 2; // 9
let num = 3;
num **= 2;
console.log(num); // 9
function dist(x, y) {
return Math.sqrt(x ** 2 + y ** 2);
}
优先级: 幂操作符*的优先级非常高,它要优先于乘法运算符
2 ** 2 * 2; // 8
2 * 2 ** 2; // 8
2 ** (2 * 2); // 16