1
Amy 原创整理|资料核验:2026-10-31
MDN说明,Array.prototype.at支持负数下标,从数组末尾向前计数。因此at(-1)读取最后一项;越界时返回undefined。
原创教学示例:const values = [10, 20]; values.at(-1)得到20,而values[-1]在这个数组上得到undefined。原因是方括号里的-1访问名为'-1'的普通属性,并不会自动转成“最后一项”的位置。
Amy建议:读取最后一项后仍要处理空数组。[].at(-1)也是undefined,不能直接假定它一定是对象并继续访问属性。把非空数组、空数组和越界位置各检查一次,能更容易发现边界问题。
官方来源:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at