ECMAScript

ECMAScript—JavaScript,JScriptvəActionScriptdaxil olmaqla skript dilləri üçün standart. Bu, müxtəlif veb-brauzerlər arasında veb-səhifələrin qarşılıqlı əlaqəsini təmin etmək üçün nəzərdə tutulmuş JavaScript standartı kimi tanınır.ECMA-262sənədində Ecma International tərəfindən standartlaşdırılıb.
ECMAScript adətən World Wide Web-də müştəri tərəfi skripti üçün istifadə olunur və o, işləmə mühitləri olanNode.js,denovəbunistifadə edən server proqramları və xidmətləri üçün getdikcə daha çox istifadə olunur.
ECMAScript spesifikasiyasıBrendan Eyxtərəfindən hazırlanmış, əvvəlcə Mocha, sonra LiveScript və nəhayət JavaScript adlandırılan skript dilinin standartlaşdırılmış spesifikasiyasıdır.1995-ci ilin dekabrındaSun MicrosystemsvəNetscapepress-relizlə JavaScript-i elan etdilər.1996-cı ilin noyabrında Netscape JavaScript-in standartlaşdırılmasını inkişaf etdirmək üçünEcma Internationalstandartlar təşkilatının iclasını elan etdi.ECMA-262-nin ilk nəşri 1997-ci ilin iyununda Ecma Baş Assambleyası tərəfindən qəbul edilmişdir. O vaxtdan bəri dil standartının bir neçə nəşri yayımlanmışdır. "ECMAScript" adı dilin standartlaşdırılması ilə məşğul olan təşkilatlar, xüsusilə Netscape və Microsoft arasında kompromis idi, onların mübahisələri ilkin standartlar sessiyalarında üstünlük təşkil edirdi. Eyx, "ECMAScript həmişəekzemakimi səslənən arzuolunmaz bir əmtəə adı idi" demişdi.ECMAScript təhlükəsizlik təhlili və standartlaşdırma üçün Stenford Universitetində vəLondon İmperial KollecininHesablama Departamentində əməliyyat semantikası vasitəsilə rəsmiləşdirilib."ECMA" 1994-cü ilə qədər "Avropa Kompüter İstehsalçıları Assosiasiyası"nı (ing.European Computer Manufacturers Association) ifadə edirdi.
ECMAScript dili strukturlaşdırılmış, dinamik, funksional və prototip əsaslı xüsusiyyətləri ehtiva edir.
ECMAScript JavaScriptCtipli strukturlaşdırılmış proqramlaşdırmanı dəstəkləyir. Əvvəllər JavaScript yalnızvaraçar sözündən istifadə edərək funksiyaların əhatə dairəsini dəstəkləyirdi, lakin ECMAScript 2015letvəconstaçar sözlərini əlavə etdi və JavaScript-ə həm blokun əhatə dairəsini, həm də funksiyaların əhatəsini dəstəkləməyə imkan verdi. JavaScript avtomatik nöqtəli vergülün qoyulmasını dəstəkləyir, yəni adətən C dilində ifadəni dayandıran nöqtəli vergüllər JavaScript-də istifadə olunmaya bilər.
C tipli dillər kimi, nəzarət axınıwhile,for,do / while,if / elsevəswitchifadələri ilə həyata keçirilir. Funksiyalar zəif tiplidir və istənilən tipi qəbul edib qaytara bilər. Göstərilməyən arqumentlər defolt olaraqundefinedolur.
ECMAScript zəif tiplidir. Bu o deməkdir ki, müəyyən tiplər yerinə yetirilən əməliyyat əsasında gizli şəkildə təyin edilir. Bununla belə, JavaScript-də dəyişənin bir tipdən digərinə çevrilməsinin həyata keçirilməsində bir neçə qəribəlik var. Bu qəribəliklər"Wat"adlı müzakirənin mövzusu olmuşdur.
ECMAScript dinamikdir. Tip ifadə ilə deyil, dəyərlə əlaqələndirilir. ECMAScript obyektlərin növünü yoxlamaq üçün müxtəlif yolları, o cümlədən "duck typing"i dəstəkləyir.
ES 2015-dən bəri JavaScript-in transpilyasiyası çox adi hala çevrilib. Transpilyasiya JavaScript-in daha yeni versiyalarının istifadə olunduğu mənbədən mənbəyə kompilyasiyadır və ötürücü mənbə kodunu köhnə brauzerlər tərəfindən dəstəklənməsi üçün yenidən yazır. Adətən, transpilerlər brauzerlərin bütün versiyaları ilə uyğunluğu qorumaq üçün ES3-ə qədər enir. Müəyyən bir versiyaya köçürmək üçün parametrlər ehtiyaca uyğun olaraq konfiqurasiya edilə bilər. Transpilyasiya qurulma prosesinə əlavə bir addım əlavə edir və bəzən polifillərə ehtiyac duymamaq üçün edilir. Polifillər onlara çatmayan köhnə mühitlər üçün yeni xüsusiyyətlər yaradır və bunu istifadəçinin brauzeri və ya server kimi tərcüməçinin iş mühitində edir. Bunun əvəzinə, transpilyasiya ECMA kodunu tərcüməçiyə çatmazdan əvvəl tərtibatın qurma mərhələsində özü yenidən yazır.
2010-cu ildə Ecma International Ecma 262 ECMAScript üçün standart testini hazırlamağa başladı.Test262 JavaScript tətbiqinin ECMAScript Spesifikasiyasına nə qədər yaxından əməl etdiyini yoxlamaq üçün istifadə edilə bilən ECMAScript uyğunluq test paketidir. Test dəsti minlərlə fərdi testdən ibarətdir, onların hər biri ECMAScript spesifikasiyasının bəzi xüsusi tələblərini sınaqdan keçirir. Test262-nin inkişafı Ecma Texniki Komitəsinin 39 (TC39) layihəsidir. Test freymvorku və fərdi testlər TC39-un üzv təşkilatları tərəfindən Ecma-ya təqdim olunur.
Google (Sputnik test paketi) və hər ikisi minlərlə testdə iştirak edən Microsoft tərəfindən layihəyə mühüm töhfələr verilib. Test262 test paketi 2020-ci ilin yanvar ayına olan 38014 testdən ibarət idi.ES7 vasitəsilə ECMAScript spesifikasiyası əsas veb-brauzerlərdə yaxşı dəstəklənir. Aşağıdakı cədvəl ECMAScript-in ən son nəşrləri ilə bağlı proqram təminatının cari versiyaları üçün uyğunluq dərəcəsini göstərir.
ECMA-262 və ya ECMAScript Dil Spesifikasiyası ECMAScript Dilini və ya sadəcə ECMAScript-i müəyyən edir.ECMA-262 yalnız dil sintaksisini vəArray,FunctionvəglobalThiskimi əsastətbiqi proqramlaşdırma interfeysinin(API) semantikasını müəyyən edir, JavaScript-in etibarlı tətbiqləri isə giriş/çıxış və fayl sistemi ilə işləmə kimi öz funksiyalarını əlavə edir.