Свежие нововведения в JavaScript, представленные в спецификации ECMAScript 2024 (ES2024). JavaScript продолжает развиваться, и в этом году мы получили несколько интересных обновлений, которые помогут сделать наш код более эффективным и удобным.
Новые функции в ES2024
1. Tuple и Record
Tuple и Record — это два новых типа данных, которые делают работу с неизменяемыми данными более удобной и безопасной.
1const tuple = #[1,2,3];2const record = #{ name:'John', age:30};34
2. Async Context
Async Context позволяет отслеживать контекст выполнения асинхронных операций, что особенно полезно для логирования и отладки.
ES2024 привносит множество новых возможностей и улучшений в JavaScript, делая язык еще более мощным и удобным для разработчиков. Новые типы данных, такие как Tuple и Record, позволяют работать с неизменяемыми данными более эффективно. Async Context и Top-Level Await упрощают работу с асинхронным кодом. Декораторы добавляют гибкости и расширяемости классов.
console
.
log
(
tuple
[
0
]
)
;
// 1
5console.log(record.name);// John
function
logWithAsyncContext
(
message
)
{
6const context = asyncLocalStorage.getStore();
7console.log(`${context.traceId}: ${message}`);
8}
9
10asyncLocalStorage.run({ traceId:'123'},()=>{
11logWithAsyncContext('Hello, world!');
12});
(
regex
)
]
;
4
5console.log(match[0].indices);// [[0, 5]]
6console.log(match[1].indices);// [[13, 18]]
// main.js
6import'./module.js';
}
5
6classPerson{
7 @readonly
8 name ='John';
9}
10
11const person =newPerson();
12person.name ='Doe';// TypeError: Cannot assign to read only property 'name'
3
4console.log(userInfo.name);// Alice
5console.log(userScores[1]);// 87
4// main.js
5import{ data }from'./data.js';
6
7console.log(data);
(
...
args
)
{
4console.log(`Calling ${key} with arguments: ${args}`);
5returnoriginalMethod.apply(this, args);
6};
7return descriptor;
8}
9
10classCalculator{
11@log
12add(a, b){
13return a + b;
14}
15}
16
17const calculator =newCalculator();
18console.log(calculator.add(2,3));// Calling add with arguments: 2,3