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. 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 |
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
- . 2006.
-
Stefanov, Stoyan. . O'Reilly Media, Inc. 2010. səh. 5. ISBN 9781449396947. 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:.
- . nodejs.org. 2023-12-09 tarixində . İstifadə tarixi: 2023-12-12.
- Krill, Paul. . InfoWorld. 14 dek 2021. 2023-11-11 tarixində . İstifadə tarixi: 2023-12-12.
- 2023-12-11 at the Wayback Machine bun
- Krill, Paul. . 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ə arxivləşdirilib. İstifadə tarixi: 2019-11-04.
- Press Release. . Netscape.com. Netscape. November 15, 1996. 1998-12-03 tarixində arxivləşdirilib. İstifadə tarixi: 2013-10-31.
- Eich, Brendan. . mozilla.org. Mail.mozilla.org. 2006-10-03. 2020-06-21 tarixində . İstifadə tarixi: 2021-05-05.
- Maffeis, Sergio; Mitchell, John C.; Taly, Ankur. (PDF). stanford.edu. Association for Computing Machinery. 2020-01-03. 2020-01-03 tarixində (PDF). İstifadə tarixi: 2020-01-03.
- . ECMAScript. 2012-08-02 tarixində arxivləşdirilib. İstifadə tarixi: 2009-12-17.
- David Flanagan. . "O'Reilly Media, Inc.". 17 August 2006. səh. 16. ISBN 978-0-596-55447-7. 1 August 2020 tarixində . İstifadə tarixi: 11 November 2019.
- Bernhardt, Gary. . CodeMash 2012. Destroy All Software. 2019-10-28 tarixində . İstifadə tarixi: 2021-08-18.
- Gilbertson, Scott. . Wired. 26 January 2012. 23 August 2020 tarixində . İstifadə tarixi: 22 August 2021.
- . Developer.mozilla.org. 2017-02-16. 2017-03-14 tarixində . İstifadə tarixi: 2017-02-24.
- . Test262.ecmascript.org. 2011-05-14 tarixində arxivləşdirilib. İstifadə tarixi: 2013-10-31.
- . GitHub. January 24, 2020. October 1, 2019 tarixində . İstifadə tarixi: January 29, 2020.
- . kangax.github.io (ingilis). 2018-11-19 tarixində . İstifadə tarixi: 2018-11-08.
- . kangax.github.io (ingilis). 2018-11-17 tarixində . İstifadə tarixi: 2018-11-08.
- ↑ . 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. . tc39.es. Tc39.es. 2022-02-14. 2020-05-08 tarixində . İstifadə tarixi: 2022-02-14.
Xarici keçidlər
- — Rəsmi saytı