What is ES2022?
Its abbreviated to ES1, ES2, ES3, ES5, and ES6. Since 2016 new versions are named by year (ECMAScript 2016 / 2017 / 2018).
const fruits = ['apple','banana','mango','custard'];
Now, let say we want to access last element of
fruits array, but what if you don't know length of array.
How will you do that?
Well, there are different approaches to achieve this:
- Using length property of array:
let lastElement = fruits[fruits.length - 1]; console.log(lastElement );
- Using the slice() method:
let lastElement = fruits.slice(-1);console.log(lastElement );
- Using the pop() method:
let lastElement = fruits.pop();console.log(lastElement);
But if you look into this methods, this methods main objective is not to output the last element of array but we are manipulating in such a way that its gives last element of array. Also, somewere they have performance issue see here
So, ECMA2022 brings new method for us i.e., at(index).
With at(index), you can get the element at the provided
See example below
console.log(fruits.at(1)); // apple console.log(fruits.at(-1)); // custard console.log(fruits.at(2)); // mango
Working jsfiddle is here :
Interestingly if you do
fruits.at(-0) it gives you
apple. So, merry go round.
Follow @msabir for more such contents.
Top comments (10)
I think I will pass on at() for a while - seems to be **100x slower **than indexing the array on my setup - even on a small array.
They need to improve it. Perf is worse for sure.
Yes definitely but there is also one more thing, the older method were not meant to get you value from index, it's just we made the work around for that, and second point, in realistic scenario we might don't have array of 1000 elements (in realistic scene)
I think that
atshines at robustness and readability, and perf can be improved over time. I'm not saying is bad, I'm just saying that perfwise is not great yet.
thanks for test, interesting result
fruitsseems far better than
fruits.at(0)but who knows if there's a specific application for .at()
Try fruits[-1]. This will not work. Here at() comes handy.
If you want blog on any topic of JS, comment it out, I will surely add it in my bucket. :)