ECMAScript 即将推出 `at`

2025-05-25

ECMAScript 即将推出 `at`

如果你是一名 JavaScript 开发者,你可能经常使用数组。它们是 JavaScript 语言中必不可少的数据结构。

事实上,它们如此重要,以至于阵列原型在过去几年里得到了快速扩展,添加了诸如flat和 之类的功能filter。而且我们还没有完成。

访问器

要访问数组中的元素,您需要知道它的索引。JavaScript 中的索引从零开始,因此第一个元素位于索引 0 处。

const arr = ["a","b","c","d"]
arr[0] // this is "a"
arr[2] // this is "c"
Enter fullscreen mode Exit fullscreen mode

如上例所示,您可以访问第一个元素或第三个元素。那么最后一个元素呢?在其他语言中,您可能可以这样做。

const arr = ["a","b","c","d"]
arr[-1] // This is NOT "d"
Enter fullscreen mode Exit fullscreen mode

但在 JavaScript 中却不是这样!为什么呢?因为事实证明,-1已经是一个有效的键了。数组实际上是以索引为键的对象。因此arr[-1],查看arr对象和键的值"-1"(也就是 )也是可行的undefined

最后一个元素

那么,如果不知道索引,我们该如何访问最后一个元素呢?有办法,但肯定比较繁琐。你可以使用长度查找。

arr[arr.length - 1] // this is "d"
Enter fullscreen mode Exit fullscreen mode

或者您有切片选项。

arr.slice(-1)[0] // this is "d"
Enter fullscreen mode Exit fullscreen mode

介绍

这就是该at函数正在考虑的原因。除了这些选项之外,您还可以这样写。

arr.at(-1) // this is "d"
Enter fullscreen mode Exit fullscreen mode

请注意,这适用于所有有效的负索引,直到您传递第一个元素为止。

其优点在于at它可以完全替代方括号。

arr.at(0) // this is still "a"
Enter fullscreen mode Exit fullscreen mode

那么无效索引怎么办?

arr.at(5) // this is undefined
Enter fullscreen mode Exit fullscreen mode

看上去包罗万象。

关于历史的题外话

事实证明,在使用之前就有人尝试过item。然而,它与主流库冲突,不兼容 Web。所以,at目前的提案也是如此。

你会用它吗?

希望这能尽快进入第四阶段并被正式采纳。我认为这是访问数组元素的一个很好的语法糖。

文章来源:https://dev.to/laurieontech/at-coming-soon-to-ecmascript-1k91
PREV
会议发言人的自白
NEXT
SEO 入门:抓取、索引、排名 Canonical_url 反向链接 重复内容 SEO 可以改变