判断"数组里有没有这个元素",有就 true,没有就 false。
| 以前 · indexOf 绕一圈 | 现在 · includes 直接问 |
|---|---|
let arr = [1, 2, 3, 4, 5]; console.log(arr.indexOf(1) !== -1); // true(indexOf 找不到返回 -1,要 != -1 判断) |
let arr = [1, 2, 3, 4, 5]; console.log(arr.includes(1)); // true(直接给布尔值) console.log(arr.includes(9)); // false |
includes 就是直接问"有没有",返回 true / false;以前得用 indexOf 找下标再判断,绕一圈。
| 以前 · indexOf 找不到 NaN | 现在 · includes 能找到 |
|---|---|
console.log([NaN].indexOf(NaN)); // -1(找不到) |
console.log([NaN].includes(NaN)); // true(能找到) |
indexOf 用 === 比较,NaN 和谁都不相等,所以找不到;includes 能正确处理 NaN。
就是"几次方"。以前要写 Math.pow,现在直接写 **,和加减乘除一样是个运算符。
| 以前 · Math.pow | 现在 · ** |
|---|---|
console.log(Math.pow(2, 10)); // 1024(2 的 10 次方) console.log(Math.pow(3, 3)); // 27(3 的 3 次方) |
console.log(2 ** 10); // 1024 console.log(3 ** 3); // 27 |
2 ** 10 就是 2 的 10 次方,和 Math.pow(2, 10) 结果一样,写起来短。
console.log(2 ** 0.5); // 1.414...(平方根,2 的 0.5 次方) let x = 3; x **= 2; // 等价于 x = x ** 2 console.log(x); // 9
**= 是"自己等于自己的几次方",和 += 一个套路。