每六周,v8引擎总是会做一些小更新,这些更新总是能成为新闻~
这个是 9.2 版本的更新,会随着 chrome 92,一起发布,目前已经在 firefox 和 babel 支持
9.2 版本为 Array、各种 TypedArray、String 的原型上,新增了 at 方法,便于从尾部访问元素,v8.dev/features/at…
在这个特性出来之前,从尾部访问元素会比较麻烦
const arr = [1, 2, 3, 4, 5]
// 访问倒数第二个元素 4
arr[arr.length - 2]; // 方式1
arr.slice(-2)[0]; // 不考虑性能的方式
// 使用 at 就很方便,at 也同时支持正数
arr.at(-2)
at 方法的实现也很简单
function at(n) {
// 粗暴的去掉小数点后面的内容,把他转化为整数
n = Math.trunc(n) || 0;
// 如果是负数,变为正数
if(n < 0) n+= this.length;
// 如果越界访问,返回 undefined
if(n < 0 || n > this.length) return undefined;
// 返回之间通过数组下标取的结果
return this[n];
}
// 试一下
Array.prototype.at = at;
const arr = [1, 2, 3];
arr.at(-2); // 2
arr.at(-8); // undefined
arr.at(-2.34); // 2
还有一个更新是 Shared Pointer Compression Cage,想要了解可以看下面的文档~