Welcome JavaScript 2.0

JavaScript вебде үстөмдүк кылат – жана тилдин өзөгү болгон ECMAScript жетилип келе жатат. Жылдын ортосунда күтүлүп жаткан жаңы спецификация (ES6 же JS2) буга чейин сыноодон өткөрүлө турган көптөгөн инновацияларды алып келет. Firefox учурда эң мыкты колдоону сунуштайт, бирок Google Traceur сыяктуу транспилерлер аркылуу политолтуруулар да мүмкүн. ES6нын жаңы функцияларына кыскача сереп төмөндө келтирилген.


Жаңы ачкыч сөз var га караганда көп нерсени жакшыраак аткарат : скопинг азыр башка тилдердегидей иштейт (C/C++, Java), ошондуктан блоктордун азыр да өз чөйрөсү бар. Көтөрүү, б.а. тиешелүү чөйрөдө өзгөрүлмө декларациялардын артыкчылыктуулугу (нарктык тапшырмалар эмес) да оңдолот.:

console.log(x);
var x = 'foo'; 
// undefined

console.log(y);
let y = 'bar';
// not initialized

Башка инновациялардын саны көп: константалар (const), функциялар үчүн демейки маанилер (функция pow(a,b=2) { return Math.pow(a,b); }), функциялар үчүн жаңы белгилер (let pow = (a,b=2) => Math.pow(a,b);), ар түрдүү жаңы функциялар (кайталоо(), камтыйт(), жаңы(i), куруу(), тап(W) үчүн ... үчүн.

Ошондой эле белгилей кетчү нерсе, жаңы маалымат түрлөрү Set, Map, Proxy жана Symbol, импорттоо менен JavaScript файлдарын импорттоо мүмкүнчүлүгү (башка бөлүктөрү) жана класстар жана мурастоо үчүн жаңы интуитивдик синтаксис. Бирок көп учурда кичинекей, бирок көптөн күткөн нерселер бар, мисалы сап литералдарында сызыктарды үзүү мүмкүнчүлүгү (атайын тырмакчаларга көңүл буруңуз):

`foo

bar`

JavaScript көптөн бери жөн гана веб-сайттын майда-чүйдө амалдары үчүн курал эмес, ал жумушчу столдогу аналогдорунан кем калбаган күчтүү, жогорку өндүрүмдүү веб-тиркемелерди түзүү үчүн колдонулат. Пайдалуу жаңы функциялардын көптүгү жана ES6 үчүн учурдагы колдоонун аркасында программалоо эки эсе жагымдуу.

Эки сандын теңдигин жаңы туруктуу Number.EPSILON туруктуу жардамы менен текшерүүнү ким дайыма эле каалаган эмес, анын мааниси 1 менен кийинки жылма чекиттин чоңдугунун айырмасы?

let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;
Артка