JavaScript вебде жана ECMAScriptте үстөмдүк кылат, тилдин өзөгү өсүп жатат. Ушул жылдын ортосунда күтүлүп жаткан жаңы спецификация (ES6 же JS2), аны менен бирге бүгүнкү күндө колдонууга мүмкүн болгон көптөгөн жаңылыктарды алып келет. Учурда Firefox эң жакшы колдоого ээ , бирок Google Traceur сыяктуу транспилятор деп аталган полифиллер дагы мүмкүн. Төмөндө ES6 жаңы мүмкүнчүлүктөрү жөнүндө кыскача баяндама келтирилген.
Жаңы ачкыч анда жакшы курстар караганда көп иштерди жасап жатат: жолунан азыр так башка тилдерде сыяктуу (C / C ++, Java), анда-блоктору азыр эмне үчүн да өз масштабын бар кыймылдайт. Ошондой эле көтөргүч, башкача айтканда, тиешелүү көлөмдө өзгөрүлмө декларацияларды (мааниге ээ эмес) алып келүү оңдолот:
console.log(x); var x = 'foo'; // undefined console.log(y); let y = 'bar'; // not initialized
Башка жаңылыктардын саны узак: туруктуу (const), функциялар үчүн демейки маанилер (function pow (a, b = 2) {return Math.pow (a, b);}), функциялар үчүн жаңы жазуу (pow болсун) = (a, b = 2) => Math.pow (a, b);), көптөгөн жаңы функциялар (repeat (), камтыйт (), beginWith (), find (), findIndex ()), жаңы циклдин курулушу үчүн ... жылдын.
Ошондой эле жаңы маалыматтар түрлөрү, карта, прокси жана символ, импорттолгон JavaScript файлдарынын импорту (башка бөлүктөрү) жана класстар жана мурастар үчүн жаңы интуитивдик синтаксис жөнүндө сөз кылуу керек. Бирок көп учурда саптар үзүлүшү сыяктуу кичинекей, бирок көптөн бери күтүлүп жаткан нерселер бар (атайын тырмакча белгилери):
`foo bar`
JavaScript көптөн бери веб-сайттардын айла-амалдарынын куралы болуп келген - ал өзүнүн жумушчу столундагы кесиптештеринен эч кандай кемибеген күчтүү, жогорку сапаттуу веб-тиркемелерди жаратат. Көптөгөн пайдалуу жаңылыктар жана ES6 колдоосу менен программалоо эки эсе көңүлдүү.
Эки сандын теңдигин жаңы туруктуу Number.EPSILON туруктуу жардамы менен текшерүүнү ким дайыма эле каалаган эмес, анын мааниси 1 менен кийинки жылма чекиттин чоңдугунун айырмасы?
let cmp = (a,b) => Math.abs(a-b)