ЕЦМАСцрипт 2023 уводи нове функције које ће утицати на развој веба.

Праћење најновијих програмских језика и оквира је кључно у свету веб развоја који се стално развија. ЈаваСцрипт је језик који се широко користи за ову сврху, а ЕС14 (ЕЦМАСцрипт 2023) је постављен да уведе узбудљиве нове функције и побољшања.

Овај чланак истражује очекивана ажурирања, укључујући језичке карактеристике и предложене промене стандардне библиотеке, и њихове импликације на развој веба.

1. Типови записа и тупле

ЕС14 уводи типове записа и тупле, који поједностављују рад са сложеним структурама података у ЈаваСцрипт-у. Записи су слични објектима, али са фиксним скупом кључева и одређеним типом за сваку вредност. Торке су уређене колекције вредности са одређеним типом за сваки елемент.

Ево примера коришћења типова записа и тупле у ЕС14:

тип Особа = {
име: стринг;
старост: број;
адреса: [стринг, стринг, број];
};

конст Џон: Особа = {
име: "Јован",
године: 30,
адреса: ["123 Маин Ст", "било који град", 12345],
};

Тип особе је дефинисан у овом примеру коришћењем стринга за име, броја за узраст и тупле за адресу, која укључује низ за уличну адресу, низ за град и број за поштански број код. Тип Персон се затим користи за креирање Јохн објекта.

2. Оператер цевовода

ЕС14 уводи оператора цевовода, означеног симболом |>, што омогућава програмерима да уланчане трансформације на читљивији начин. Са овим оператором, сваку трансформацију врши посебна функција.

Ево примера коришћења оператора цевовода у ЕС14:

конст резултат = [1, 2, 3, 4, 5]
|> ((арр) => арр.филтер((н) => н % 20))
|> ((арр) => арр.мап((н) => н * 2))
|> ((арр) => арр.редуце((а, б) => а + б));

конзола.лог (резултат); // Излаз: 12

Коришћењем оператора цевовода, низ [1, 2, 3, 4, 5] се може филтрирати тако да укључује искључиво парне бројеве. Након тога, сваки број се удвостручује и затим сабира да би се добио коначни резултат од 12.

3. Именовани параметри у функцијама стрелице

ЕС14 поједностављује функције стрелице синтаксу увођењем именованих параметара, побољшавајући читљивост кода и могућност одржавања. Програмери више не морају да се ослањају на деструктурирање објеката да би проследили именоване параметре функцијама стрелица; уместо тога, могу да их дефинишу директно у дефиницији функције.

На пример, размотрите овај пример:

конст поздравити = ({ име година }) => {
конзола.Пријава(`Здраво, моје име је ${наме} и ја сам ${аге} године.`);
};

поздравити({ име: "Јован", старост: 30 });
// Излаз: Здраво, моје име је Џон и имам 30 година.

У овом примеру, функција стрелице која се зове греет која узима а деструктурирани објекат са параметрима имена и старости је дефинисан. Затим се функција греет позива са објектом који садржи својства имена и старости.

4. Асинхронизовани итератори и генератори

ЕС14 сада подржава асинхроне итераторе и генераторе, поједностављујући рад са асинхроним изворима података дозвољавајући неблокирајућу потрошњу података. Ево примера:

асинцфункцијагетДата() {
конст одговор = чекати донеси (" https://api.example.com/data");
конст подаци = чекати респонсе.јсон();
повратак подаци;
}

асинцфункција* процессДата() {
конст подаци = чекати гетДата();
за (конст предмет оф подаци) {
принос ставка * 2;
}
}

(асинц () => {
зачекати (конст резултат оф процессДата()) {
конзола.лог (резултат);
}
})();

У овом примеру, асинхронизована функција, гетДата, креирана је да преузме податке из АПИ-ја и врати их као ЈСОН. Дефинише функцију асинхронизованог генератора, процессДата, за преузимање и добијање ставки података помножених са два. Петља фор-аваит-оф се затим користи за евидентирање сваког резултата из генератора у конзолу

ЕС14: Оснаживање веб развоја

ЕС14 доноси нове функције и побољшања ЈаваСцрипт-а, чинећи код читљивијим и лакшим за одржавање. Типови записа и тупле, асинхронизовани итератори и генератори су међу додацима, дајући програмерима моћне алате за савремени веб развој. Остати у току са ЕС14 је од виталног значаја за конкурентност на тржишту рада.

Савладавање ЈаваСцрипт-а и његовог оквира као што је Реацт може побољшати ваше вештине и вредност у заједници за развој веба, без обзира на ниво вашег искуства.