Кіріспе

Javascript және басқа да бағдарламалау тілдерінің сипаттамасы

ECMAScript (/'//ɛ//k//m//ə//s//k//r//ɪ//p//t/; ES) – скрипт тілдері үшін, оның ішінде JavaScript, JScript және ActionScript тілдері үшін жасалған стандарт. Ол, ең алдымен, веб-беттердің әртүрлі веб-браузерлерде үйлесімді жұмыс істеуін қамтамасыз етуге арналған JavaScript стандарты ретінде танымал. Ол Ecma International ұйымы ECMA 262 құжатында стандартталған. ECMAScript әлемдік желіде клиенттік жағындағы скрипттерді жасау үшін кеңінен қолданылады, сондай-ақ Node.js, Deno және Bun орталарында серверлік қолданбалар мен қызметтерді дамытқанда да жиі пайдаланылады.

ECMAScript, ECMA-262, JavaScript

ECMA 262, немесе ECMAScript тілінің сипаттамасы, ECMAScript тілін немесе жай ғана ECMAScriptті анықтайды. ECMA 262 тек тілдің синтаксисі мен негізгі қолданбалы бағдарламалау интерфейсінің (API) семантикасын, мысалы, , , және анықтайды. Ал JavaScript-тің қолданыстағы нұсқалары кіріс/шығыс және файлдық жүйемен жұмыс істеу сияқты өздеріне тән функционалдық мүмкіндіктерді қосады.

Тарих

ECMAScript спецификациясы – Netscape-тің Брендан Эйх жасаған скрипт тілінің стандартталған сипаттамасы; бастапқыда Mocha, кейін LiveScript, ал соңында JavaScript деп аталды. 1995 жылдың желтоқсанында Sun Microsystems және Netscape компаниялары JavaScript туралы баспасөз хабарламасы жариялады. 1996 жылдың қарашасында Netscape JavaScript стандарттауды дамыту үшін Ecma International стандарттау ұйымының жиынын ұйымдастырды. ECMA 262 стандартының бірінші нұсқасы 1997 жылдың маусымында Ecma Бас Ассамблеясымен бекітілді. Содан бері тіл стандартының бірнеше нұсқасы жарық көрді. "ECMAScript" атауы тілді стандарттауға қатысқан ұйымдар, әсіресе Netscape және Microsoft арасындағы келісім нәтижесі болды, олардың пікір келіспеушіліктері алғашқы стандарттау отырыстарында басымдық танытты. Эйх "ECMAScript – әрқашан жағымсыз сауда белгісі болды, ол тері ауруының атындай естіледі" деп мәлімдеді. ECMAScript операциялық семантика арқылы Стенфорд университеті мен Лондон Императорлық колледжінің Компьютерлік факультетіндегі қауіпсіздік талдауы және стандарттау жұмыстары арқылы ресми түрде қалыптастырылды. "ECMA" 1994 жылға дейін "Еуропалық компьютер өндірушілер қауымдастығы" деген мағынаны білдірді.

Ерекшеліктері

ECMAScript тілі құрылымдық, динамикалық, функционалды және прототип негізіндегі мүмкіндіктерді қамтиды.

Императивті және құрылымдалған

ECMAScript JavaScript C стилінде құрылымдық бағдарламалауды қолдайды. Бұрын JavaScript тек var кілт сөзін пайдаланып функциялық ауқымды қолдады, бірақ ECMAScript 2015 let және const кілт сөздерін қосты, осы арқылы JavaScript блок және функциялық ауқымды қолдауға мүмкіндік алды. JavaScript автоматты нүктелі-құртқа енгізуді қолдайды, яғни C-дегі мәлімдемені аяқтайтын нүктелі-құртқаны JavaScript-те жіберуге болады. C стиліндегі тілдер сияқты, бақылау ағыны , , , /, /, және нұсқауларымен жүзеге асырылады. Функциялар нашар типтелген және кез келген типті қабылдап, қайтара алады. Берілмеген аргументтер бос мәнге тең болады.

Қате жазылған

ECMAScript әлсіз типтеуге ие. Бұл дегеніміз, белгілі бір типтер орындалып жатқан операцияға қарай автоматты түрде тағайындалады. Дегенмен, JavaScript-тің бір типті екінші типке түрлендіруін іске асыруда бірнеше ерекшеліктер бар. Осы ерекшеліктер "Ват" деген тақырыпта сөз сөйлеуге арналған материалдың негізгі тақырыбы болды.

Динамикалық

ECMAScript динамикалық түрге ие. Сондықтан, тип өрнектен емес, мәнмен байланыстырылады. ECMAScript нысандардың типін тексерудің әртүрлі жолдарын қолдайды, оның ішінде «қаз сияқты тестілеу» әдісін де қолданады.

Транспилинг

ES 2015 жылдан бері JavaScript-ті транспиляциялау кеңінен таралды. Транспиляция – бұл кодты кодқа аудару түрі, онда JavaScript-тің жаңа нұсқалары қолданылады, ал транспилятор бастапқы кодты ескі браузерлерде қолдау көрсету үшін қайта жазады. Көбінесе, транспиляторлар барлық браузер нұсқаларымен үйлесімділікті сақтау үшін ES3 нұсқасына дейін аударады. Транспиляциялауға қажетті нұсқаны конфигурациялық параметрлер арқылы қажеттілікке қарай баптауға болады. Транспиляциялау құрылыс процесіне қосымша қадам қосады және кейде полифилдерді пайдалану қажеттілігін болдырмау үшін жасалады. Полифилдер ескі орталарда жоқ жаңа мүмкіндіктерді құрайды. Полифилдер бұл жұмысты интерпретаторда, мысалы пайдаланушының браузерінде немесе серверде орындау кезінде жасайды. Ал транспиляция даму кезеңінде ECMA кодын интерпретаторға жеткенге дейін қайта жазады.