ECMAScript — JavaScript, JScript və daxil 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-262 sənədində Ecma International tərəfindən standartlaşdırılıb.
ECMAScript | |
---|---|
Yaradılma tarixi | iyun 1997 |
Müəlliflər | Brendan Eyx, ECMA International |
Tərtibatçılar | Brendan Eyx |
Fayl sonluğu | .es |
Təsirlənib | C, CoffeeScript, Perl, Python, Java, Scheme |
ecma-international.org |
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 olan Node.js,deno və istifadə edən server proqramları və xidmətləri üçün getdikcə daha çox istifadə olunur.
Tarixi
ECMAScript spesifikasiyası Brendan Eyx tə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ında Sun Microsystems və Netscape press-relizlə JavaScript-i elan etdilər. 1996-cı ilin noyabrında Netscape JavaScript-in standartlaşdırılmasını inkişaf etdirmək üçün Ecma International standartlar 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şə ekzema kimi 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 Kollecinin Hesablama 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.
Xüsusiyyətləri
ECMAScript dili strukturlaşdırılmış, dinamik, funksional və prototip əsaslı xüsusiyyətləri ehtiva edir.
İmperativ və strukturlaşdırılmış
ECMAScript JavaScript C tipli strukturlaşdırılmış proqramlaşdırmanı dəstəkləyir. Əvvəllər JavaScript yalnız var
açar sözündən istifadə edərək funksiyaların əhatə dairəsini dəstəkləyirdi, lakin ECMAScript 2015 let
və const
aç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 / else
və switch
ifadə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 olaraq undefined
olur.
Zəif tipli
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.
Dinamik
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.
Transpilyasiya
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.
Uyğunluq
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.
Skriptləşdirmə mühərriki | İstinad tətbiqləri | Uyğunluq | |||
---|---|---|---|---|---|
ES5 | ES6 (2015) | ES7 (2016) | Yeni (2017+) | ||
Firefox 94 | 100% | 98% | 100% | 100% | |
V8 | Google Chrome 95, Microsoft Edge 95, Opera 80 | 100% | 98% | 100% | 100% |
Safari 15 | 100% | 99% | 100% | 90% |
ECMAScript, ECMA-262, JavaScript
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
, Function
və globalThis
kimi əsas tə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.
İstinadlar
- Scripting Media Type. 2006.
- Stefanov, Stoyan. JavaScript Patterns. O'Reilly Media, Inc. 2010. səh. 5. ISBN . 2016-06-10 tarixində . İstifadə tarixi: 2016-01-12.
The core JavaScript programming language [...] is based on the ECMAScript standard, or ES for short.
- Wirfs-Brock, Allen; Eich, Brendan. "JavaScript: The First 20 Years". Proceedings of the ACM on Programming Languages. 4. 2020-05-02: 1–189. doi:10.1145/3386327.
- "ECMAScript 2015 (ES6) and beyond | Node.js". nodejs.org. 2023-12-09 tarixində . İstifadə tarixi: 2023-12-12.
- Krill, Paul. "Deno joins JavaScript standards effort". InfoWorld. 14 dek 2021. 2023-11-11 tarixində . İstifadə tarixi: 2023-12-12.
- https://bun.sh/docs#:~:text=or%2C%20more%20formally%2C-,ECMAScript,-)%20is%20just%20a 2023-12-11 at the Wayback Machine bun
- Krill, Paul. "JavaScript creator ponders past, future". infoworld.com. InfoWorld. 2008-06-23. 2014-09-20 tarixində . İstifadə tarixi: 2013-10-31.
- . Netscape.com. Netscape. 1995-12-04. 2002-06-06 tarixində orijinalından arxivləşdirilib. İstifadə tarixi: 2019-11-04.
- Press Release. . Netscape.com. Netscape. November 15, 1996. 1998-12-03 tarixində orijinalından arxivləşdirilib. İstifadə tarixi: 2013-10-31.
- Eich, Brendan. "Will there be a suggested file suffix for es4?". mozilla.org. Mail.mozilla.org. 2006-10-03. 2020-06-21 tarixində . İstifadə tarixi: 2021-05-05.
- Maffeis, Sergio; Mitchell, John C.; Taly, Ankur. "An Operational Semantics for JavaScript" (PDF). stanford.edu. Association for Computing Machinery. 2020-01-03. 2020-01-03 tarixində (PDF). İstifadə tarixi: 2020-01-03.
- "About". ECMAScript. 2012-08-02 tarixində orijinalından arxivləşdirilib. İstifadə tarixi: 2009-12-17.
- David Flanagan. JavaScript: The Definitive Guide: The Definitive Guide. "O'Reilly Media, Inc.". 17 August 2006. səh. 16. ISBN . 1 August 2020 tarixində . İstifadə tarixi: 11 November 2019.
- Bernhardt, Gary. Wat. CodeMash 2012. Destroy All Software. 2019-10-28 tarixində . İstifadə tarixi: 2021-08-18.
- Gilbertson, Scott. "Jokes for Nerds: Wat Moments in Programming". Wired. 26 January 2012. 23 August 2020 tarixində . İstifadə tarixi: 22 August 2021.
- "JavaScript data types and data structures – JavaScript | MDN". Developer.mozilla.org. 2017-02-16. 2017-03-14 tarixində . İstifadə tarixi: 2017-02-24.
- . Test262.ecmascript.org. 2011-05-14 tarixində orijinalından arxivləşdirilib. İstifadə tarixi: 2013-10-31.
- "tc39/test262". GitHub. January 24, 2020. October 1, 2019 tarixində . İstifadə tarixi: January 29, 2020.
- "ECMAScript 5 compatibility table". kangax.github.io (ingilis). 2018-11-19 tarixində . İstifadə tarixi: 2018-11-08.
- "ECMAScript 6 compatibility table". kangax.github.io (ingilis). 2018-11-17 tarixində . İstifadə tarixi: 2018-11-08.
- "ECMAScript 2016+ compatibility table". kangax.github.io (ingilis). 2018-11-24 tarixində . İstifadə tarixi: 2018-11-08.
- ES7-dən növbəti nəşr qaralamalarına qədər yeni funksiyaları özündə birləşdirən kompozit xal
- Guo, Shu-yu. "ECMAScriptÂŽ 2022 Language Specification". tc39.es. Tc39.es. 2022-02-14. 2020-05-08 tarixində . İstifadə tarixi: 2022-02-14.
Xarici keçidlər
- ecma-international.org — ECMAScript rəsmi saytı
wikipedia, oxu, kitab, kitabxana, axtar, tap, meqaleler, kitablar, oyrenmek, wiki, bilgi, tarix, tarixi, endir, indir, yukle, izlə, izle, mobil, telefon ucun, azeri, azəri, azerbaycanca, azərbaycanca, sayt, yüklə, pulsuz, pulsuz yüklə, haqqında, haqqinda, məlumat, melumat, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, şəkil, muisiqi, mahnı, kino, film, kitab, oyun, oyunlar, android, ios, apple, samsung, iphone, pc, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, web, computer, komputer
ECMAScript JavaScript JScript ve daxil olmaqla skript dilleri ucun standart Bu muxtelif veb brauzerler arasinda veb sehifelerin qarsiliqli elaqesini temin etmek ucun nezerde tutulmus JavaScript standarti kimi taninir ECMA 262 senedinde Ecma International terefinden standartlasdirilib ECMAScriptYaradilma tarixi iyun 1997Muellifler Brendan Eyx ECMA InternationalTertibatcilar Brendan EyxFayl sonlugu esTesirlenib C CoffeeScript Perl Python Java Schemeecma international org ECMAScript adeten World Wide Web de musteri terefi skripti ucun istifade olunur ve o isleme muhitleri olan Node js deno ve istifade eden server proqramlari ve xidmetleri ucun getdikce daha cox istifade olunur TarixiECMAScript spesifikasiyasi Brendan Eyx terefinden hazirlanmis evvelce Mocha sonra LiveScript ve nehayet JavaScript adlandirilan skript dilinin standartlasdirilmis spesifikasiyasidir 1995 ci ilin dekabrinda Sun Microsystems ve Netscape press relizle JavaScript i elan etdiler 1996 ci ilin noyabrinda Netscape JavaScript in standartlasdirilmasini inkisaf etdirmek ucun Ecma International standartlar teskilatinin iclasini elan etdi ECMA 262 nin ilk nesri 1997 ci ilin iyununda Ecma Bas Assambleyasi terefinden qebul edilmisdir O vaxtdan beri dil standartinin bir nece nesri yayimlanmisdir ECMAScript adi dilin standartlasdirilmasi ile mesgul olan teskilatlar xususile Netscape ve Microsoft arasinda kompromis idi onlarin mubahiseleri ilkin standartlar sessiyalarinda ustunluk teskil edirdi Eyx ECMAScript hemise ekzema kimi seslenen arzuolunmaz bir emtee adi idi demisdi ECMAScript tehlukesizlik tehlili ve standartlasdirma ucun Stenford Universitetinde ve London Imperial Kollecinin Hesablama Departamentinde emeliyyat semantikasi vasitesile resmilesdirilib ECMA 1994 cu ile qeder Avropa Komputer Istehsalcilari Assosiasiyasi ni ing European Computer Manufacturers Association ifade edirdi XususiyyetleriECMAScript dili strukturlasdirilmis dinamik funksional ve prototip esasli xususiyyetleri ehtiva edir Imperativ ve strukturlasdirilmis ECMAScript JavaScript C tipli strukturlasdirilmis proqramlasdirmani destekleyir Evveller JavaScript yalniz var acar sozunden istifade ederek funksiyalarin ehate dairesini destekleyirdi lakin ECMAScript 2015 let ve const acar sozlerini elave etdi ve JavaScript e hem blokun ehate dairesini hem de funksiyalarin ehatesini desteklemeye imkan verdi JavaScript avtomatik noqteli vergulun qoyulmasini destekleyir yeni adeten C dilinde ifadeni dayandiran noqteli verguller JavaScript de istifade olunmaya biler C tipli diller kimi nezaret axini while for do while if else ve switch ifadeleri ile heyata kecirilir Funksiyalar zeif tiplidir ve istenilen tipi qebul edib qaytara biler Gosterilmeyen arqumentler defolt olaraq undefined olur Zeif tipli ECMAScript zeif tiplidir Bu o demekdir ki mueyyen tipler yerine yetirilen emeliyyat esasinda gizli sekilde teyin edilir Bununla bele JavaScript de deyisenin bir tipden digerine cevrilmesinin heyata kecirilmesinde bir nece qeribelik var Bu qeribelikler Wat adli muzakirenin movzusu olmusdur Dinamik ECMAScript dinamikdir Tip ifade ile deyil deyerle elaqelendirilir ECMAScript obyektlerin novunu yoxlamaq ucun muxtelif yollari o cumleden duck typing i destekleyir Transpilyasiya ES 2015 den beri JavaScript in transpilyasiyasi cox adi hala cevrilib Transpilyasiya JavaScript in daha yeni versiyalarinin istifade olundugu menbeden menbeye kompilyasiyadir ve oturucu menbe kodunu kohne brauzerler terefinden desteklenmesi ucun yeniden yazir Adeten transpilerler brauzerlerin butun versiyalari ile uygunlugu qorumaq ucun ES3 e qeder enir Mueyyen bir versiyaya kocurmek ucun parametrler ehtiyaca uygun olaraq konfiqurasiya edile biler Transpilyasiya qurulma prosesine elave bir addim elave edir ve bezen polifillere ehtiyac duymamaq ucun edilir Polifiller onlara catmayan kohne muhitler ucun yeni xususiyyetler yaradir ve bunu istifadecinin brauzeri ve ya server kimi tercumecinin is muhitinde edir Bunun evezine transpilyasiya ECMA kodunu tercumeciye catmazdan evvel tertibatin qurma merhelesinde ozu yeniden yazir Uygunluq2010 cu ilde Ecma International Ecma 262 ECMAScript ucun standart testini hazirlamaga basladi Test262 JavaScript tetbiqinin ECMAScript Spesifikasiyasina ne qeder yaxindan emel etdiyini yoxlamaq ucun istifade edile bilen ECMAScript uygunluq test paketidir Test desti minlerle ferdi testden ibaretdir onlarin her biri ECMAScript spesifikasiyasinin bezi xususi teleblerini sinaqdan kecirir Test262 nin inkisafi Ecma Texniki Komitesinin 39 TC39 layihesidir Test freymvorku ve ferdi testler TC39 un uzv teskilatlari terefinden Ecma ya teqdim olunur Google Sputnik test paketi ve her ikisi minlerle testde istirak eden Microsoft terefinden layiheye muhum tohfeler verilib Test262 test paketi 2020 ci ilin yanvar ayina olan 38014 testden ibaret idi ES7 vasitesile ECMAScript spesifikasiyasi esas veb brauzerlerde yaxsi desteklenir Asagidaki cedvel ECMAScript in en son nesrleri ile bagli proqram teminatinin cari versiyalari ucun uygunluq derecesini gosterir Skriptleme muherrikinin uygunlugu Skriptlesdirme muherriki Istinad tetbiqleri UygunluqES5 ES6 2015 ES7 2016 Yeni 2017 Firefox 94 100 98 100 100 V8 Google Chrome 95 Microsoft Edge 95 Opera 80 100 98 100 100 Safari 15 100 99 100 90 ECMAScript ECMA 262 JavaScriptECMA 262 ve ya ECMAScript Dil Spesifikasiyasi ECMAScript Dilini ve ya sadece ECMAScript i mueyyen edir ECMA 262 yalniz dil sintaksisini ve Array Function ve globalThis kimi esas tetbiqi proqramlasdirma interfeysinin API semantikasini mueyyen edir JavaScript in etibarli tetbiqleri ise giris cixis ve fayl sistemi ile isleme kimi oz funksiyalarini elave edir IstinadlarScripting Media Type 2006 Stefanov Stoyan JavaScript Patterns O Reilly Media Inc 2010 seh 5 ISBN 9781449396947 2016 06 10 tarixinde Istifade tarixi 2016 01 12 The core JavaScript programming language is based on the ECMAScript standard or ES for short Wirfs Brock Allen Eich Brendan JavaScript The First 20 Years Proceedings of the ACM on Programming Languages 4 2020 05 02 1 189 doi 10 1145 3386327 ECMAScript 2015 ES6 and beyond Node js nodejs org 2023 12 09 tarixinde Istifade tarixi 2023 12 12 Krill Paul Deno joins JavaScript standards effort InfoWorld 14 dek 2021 2023 11 11 tarixinde Istifade tarixi 2023 12 12 https bun sh docs text or 2C 20more 20formally 2C ECMAScript 20is 20just 20a 2023 12 11 at the Wayback Machine bun Krill Paul JavaScript creator ponders past future infoworld com InfoWorld 2008 06 23 2014 09 20 tarixinde Istifade tarixi 2013 10 31 Netscape com Netscape 1995 12 04 2002 06 06 tarixinde orijinalindan arxivlesdirilib Istifade tarixi 2019 11 04 Press Release Netscape com Netscape November 15 1996 1998 12 03 tarixinde orijinalindan arxivlesdirilib Istifade tarixi 2013 10 31 Eich Brendan Will there be a suggested file suffix for es4 mozilla org Mail mozilla org 2006 10 03 2020 06 21 tarixinde Istifade tarixi 2021 05 05 Maffeis Sergio Mitchell John C Taly Ankur An Operational Semantics for JavaScript PDF stanford edu Association for Computing Machinery 2020 01 03 2020 01 03 tarixinde PDF Istifade tarixi 2020 01 03 About ECMAScript 2012 08 02 tarixinde orijinalindan arxivlesdirilib Istifade tarixi 2009 12 17 David Flanagan JavaScript The Definitive Guide The Definitive Guide O Reilly Media Inc 17 August 2006 seh 16 ISBN 978 0 596 55447 7 1 August 2020 tarixinde Istifade tarixi 11 November 2019 Bernhardt Gary Wat CodeMash 2012 Destroy All Software 2019 10 28 tarixinde Istifade tarixi 2021 08 18 Gilbertson Scott Jokes for Nerds Wat Moments in Programming Wired 26 January 2012 23 August 2020 tarixinde Istifade tarixi 22 August 2021 JavaScript data types and data structures JavaScript MDN Developer mozilla org 2017 02 16 2017 03 14 tarixinde Istifade tarixi 2017 02 24 Test262 ecmascript org 2011 05 14 tarixinde orijinalindan arxivlesdirilib Istifade tarixi 2013 10 31 tc39 test262 GitHub January 24 2020 October 1 2019 tarixinde Istifade tarixi January 29 2020 ECMAScript 5 compatibility table kangax github io ingilis 2018 11 19 tarixinde Istifade tarixi 2018 11 08 ECMAScript 6 compatibility table kangax github io ingilis 2018 11 17 tarixinde Istifade tarixi 2018 11 08 ECMAScript 2016 compatibility table kangax github io ingilis 2018 11 24 tarixinde Istifade tarixi 2018 11 08 ES7 den novbeti nesr qaralamalarina qeder yeni funksiyalari ozunde birlesdiren kompozit xal Guo Shu yu ECMAScriptAZ 2022 Language Specification tc39 es Tc39 es 2022 02 14 2020 05 08 tarixinde Istifade tarixi 2022 02 14 Xarici kecidlerecma international org ECMAScript resmi sayti