اکما اسکریپت
اکما اسکریپت (ECMAScript یا ES) [1] مشخصات یک زبان اسکریپتی است که توسط Ecma International در ECMA-262 و ISO / IEC 16262 استاندارد شده است. اکما اسکریپت برای استاندارد سازی جاوا اسکریپت ایجاد شده است تا بتواند پیادهسازی چندگانه مستقل را تقویت کند. از زمان انتشار اولین استاندارد، جاوا اسکریپت به عنوان معروفترین پیادهسازی ECMAScript باقی مانده است، همراه با دیگر پیادهسازیهای شناخته شده مانند JScript و ActionScript . [2] ECMAScript به طور معمول برای اسکریپ نویسی سمت کلاینت در وب جهان گستر و به طور فزایندهای برای نوشتن برنامههای سرور و سرویسهایی که از نود.جی اس استفاده میکنند، استفاده میشود.
الگو برنامهنویسی | چندالگویی: بر پایه پیشنمونه، تابعی، دستوری |
---|---|
طراحی شده توسط | برندان آیک، سازمان بینالمللی اکما |
ظهوریافته در | ۱۹۹۷ |
کمزور، پویا | |
وبگاه | |
پیادهسازیهای بزرگ | |
JavaScript, SpiderMonkey, V8, ActionScript, JScript, QtScript, InScript, Google Apps Script | |
متأثر از | |
Self, HyperTalk, AWK, C, CoffeeScript, Perl, Python, Java, Scheme |
پسوند(های) نام پرونده | .es |
---|---|
نوع رسانهٔ اینترنتی | application/ecmascript |
توسعهدهنده | سان مایکروسیستمز, شرکت بینالمللی اکما |
ارائهٔ اولیه | ژوئن ۱۹۹۷ |
آخرین ویرایش | ویرایش ۱۰ (ژوئن ۲۰۱۹ ) |
گونه | زبان اجرانامهنویسی |
وبگاه |
تاریخ
مشخصات اکما یک ویژگی استاندارد شده از یک زبان اسکریپتی است که توسط برندان آیک از نت اسکیپ طراحی شدهاست. در ابتدا موچا، بعداً لایو اسکریپت، و در نهایت جاوا اسکریپت نامگذاری شد.[3] در دسامبر ۱۹۹۵ سان مایکروسیستمز و نت اسکیپ جاوا اسکریپت را در مطبوعات اعلام کردند.[4] اولین نسخه اکما-۲۶۲ توسط مجمع عمومی اکما در ژوئن ۱۹۹۷ تصویب شد. چندین نسخه استاندارد زبان از آن زمان منتشر شدهاست. نام «اکما اسکریپت» بین سازمانهای مربوط به استانداردسازی زبان با سازش انتخاب شد، به خصوص نت اسکیپ و مایکروسافت، که اختلافات آنها در جلسات اولیه استانداردها جلسات را تحت سلطه خود درمیآورد. آیک اظهار داشت که «اکما اسکریپت همیشه یک نام تجاری نامناسب است که به نظر میرسد مانند یک بیماری پوستی است.»[5]
در حالی که هر دوی جاوا اسکریپت و جی اسکریپت با اکما اسکریپت سازگار هستند، آنها همچنین ویژگیهای اضافی را که در مشخصات اکما مشخص نشدهاند، ارائه میدهند.[6]
نسخهها
تا به حال نه نسخه از ECMA-262 منتشر شدهاست. کار بر روی نسخه ۹ استاندارد در ماه ژوئن ۲۰۱۸ نهایی شد.[7]
نسخه | تاریخ انتشار | نام | تغییرات از نسخه قبلی | ویرایشگر |
---|---|---|---|---|
۱ | ژوئن ۱۹۹۷ | نسخه اول | گای لستلی جونیور | |
۲ | ژوئن ۱۹۹۸ | تغییرات سینتکس برای حفظ مشخصات بهطور کامل با استاندارد بینالمللی ISO / IEC 16262 هماهنگ شدهاست. | مایک Cowlishaw | |
۳ | دسامبر ۱۹۹۹ | عبارات منظم اضافه شده، هندل کردن بهتر رشتهها، بیانیههای جدید برای کنترل، هندل کردن استثناها به وسیلهٔ try/catch
، تعریف دقیق تر از خطاها، قالب بندی برای خروجی عددی و سایر امکانات ها |
مایک Cowlishaw | |
۴ | رها شده | به دلیل اختلافات سیاسی در مورد پیچیدگی زبان، نسخه چهارم رها شد.بسیاری از ویژگیهای ارائه شده برای نسخه چهارم به صورت کامل حذف شدند و برخی از آنها در نسخه ششم قرار گرفتند. | ||
۵ | دسامبر ۲۰۰۹ | مود "strict" اضافه میشود، یک زیرمجموعه به منظور بررسی دقیق تر خطا و اجتناب از ساختارهای احتمالی خطا ارائه میشود.ابهامات زیادی را در مشخصات نسخه ۳ روشن میسازد و رفتارهای پیادهسازی شده دنیای واقعی را که از مشخصات آن متفاوت است فراهم میکند.ویژگیهای جدیدی از قبیل دریافت کنندهها و تنظیم کنندهها، پشتیبانی از کتابخانه JSON و انعکاسکامل تر در مورد خواص شیءها اضافه میشود.[8] | Pratap Lakshman , Allen Wirfs-Brock | |
۵٫۱ | ژوئن ۲۰۱۱ | این ویرایش ۵٫۱ استاندارد ECMAScript بهطور کامل با نسخه سوم استاندارد بینالمللی ISO / IEC 16262: 2011 سازگار است. | Pratap Lakshman, Allen Wirfs-Brock | |
۶ | ژوئن 2015[9] | ECMAScript 2015 (ES2015) | نسخه ۶ را ببینید - ECMAScript 2015 | آلن ویرفس بروک |
۷ | ژوئن 2016[10] | ECMAScript 2016 (ES2016) | نسخه ۷ را ببینید - ECMAScript 2016 | براون ترلسون |
۸ | ژوئن 2017[11] | ECMAScript 2017 (ES2017) | نسخه ۸ را ببینید - ECMAScript 2017 | براون ترلسون |
۹ | ژوئن 2018[7] | ECMAScript 2018 (ES2018) | نسخه ۹ را ببینید - ECMAScript 2018 | براون ترلسون |
۱۰ | ژوئن 2019[12] | ECMAScript 2019 (ES2019) | نسخه ۱۰ را ببینید - ECMAScript2019 | براون ترلسون، بردلی فاریاس، جردن هاربند |
۱۱ | ژوئن ۲۰۲۰[13] | ECMAScript 2020 (ES2020) | نسخه ۱۱ را ببینید - ECMAScript2020 | جردن هاربند، کوین اسمیت |
در ژوئن 2004 Ecma International استاندارد ECMA-357 را منتشر کرد، که در آن یک اکستنشن برای اکما اسکریپت، به نام اکما اسکریپت برای XML (یا E4X) تعریف شدهاست. اکما همچنین یک "Compact Profile" را برای اکما اسکریپت تعریف کرد (شناخته شده به عنوان ESCP یا ECMA 327) که برای دیوایسهایی با محدودیت توانایی و امکانات طراحی شده بود، که در سال ۲۰۱۵ حذف شد.[14]
نسخه ۴ (رها شده)
چهارمین نسخه ECMA-262 (یا 4 ECMAScript یا ES4) اولین نسخه بزرگ ECMAScript از زمان انتشار سوم آن در سال ۱۹۹۹ بود. مشخصات (همراه با اجرای مرجع) برای کامل کردن آن تا اکتبر ۲۰۰۸ مورد هدف قرار گرفت.[15] خلاصه ای از این زبان توسط گروهی که برروی آن کار میکردند در ۲۳ اکتبر ۲۰۰۷ منتشر شد.[16]
تا اوت ۲۰۰۸، طرح پیشنهادی ECMAScript 4 به یک پروژه با نام ECMAScript Harmony ویرایش یافت. ویژگیهای مورد بحث برای ECMAScript Harmony در آن زمان شامل موارد زیر بودند:
- کلاسها
- یک سیستم ماژول
- حاشیه نویسی نوع اختیاری و تایپ استاتیک، احتمالاً با استفاده از یک سیستم نوع ساختاری
- ژنراتورها و تکرار کنندهها
- تخصیص مخرب و
- انواع داده جبری.
هدف این ویژگیها تا حدی برای حمایت بهتر از برنامهنویسی در ابعاد بزرگ و پویایی بعضی از تواناییهای اسکریپت برای بهبود عملکرد بود. به عنوان مثال، تامارین (ماشین مجازی برای اکشن اسکریپت، توسعه داده شده و متن باز شده توسط ادوب) قابلیت پشتیبانی فقط در زمان تدوین (JIT) را برای کلاسهای خاصی از اسکریپت داشت.
علاوه بر معرفی ویژگیهای جدید، پیشنهاد اصلاح کردن بعضی از اشکالات و باگهای ES3 در نسخه ۴ داده شد.[17][18] اینها و دیگر اصلاحات و پشتیبانی از رمزگذاری/رمزگشایی JSON، به ECMAScript، در مشخصات نسخه ۵ اضافه شد.[19]
پس از آن که مشخصات ES-CP (مشخصات جامع) تکمیل شد کار بر روی نسخه ۴ آغاز گردید و در حدود ۱۸ ماه ادامه یافت که آن پیشرفتهای آهسته موجب همزمان شدن تئوری جاوا اسکریت ۲ نت اسکیپ با تجربه پیادهسازی جی اسکریپت دات نت مایکروسافت شد. پس از مدتی تمرکز کار به سمت استاندارد اکما اسکریپت برای XML (یا E4X) منتقل شد.
این تغییر بدون ایجاد اختلاف نبود. در اواخر سال ۲۰۰۷، یک بحث بین آیک، که بعداً به عنوان CTO بنیاد موزیلا انتخاب شد، و کریس ویلسون، معمار پلتفرم مایکروسافت برای اینترنت اکسپلورر، در تعدادی از وبلاگها پخش شد.
ویلسون اخطار داد که به دلیل تغییرات پیشنهادی اکما اسکریپت، این زبان در بعضی موارد با نسخههای قبلی موجب ناسازگاری خواهد شد، این به روز رسانی منجر به «شکستن وب»[20] و سهامدارانی که با تغییرات مخالفت میکنند، «از دیدگاه مخفی» خواهند شد.[21]
آیک با بیان اینکه ویلسون "موارد جعلی را در وبلاگ " تکرار میکند، پاسخ خود را آغاز کرد و با این که تلاشی برای سرکوب مخالفان و به چالش کشیدن منتقدان با ارائهٔ نمونههایی خاص از ناسازگاری وجود داشتهاست، مخالفت کرد.[22]
وی اشاره کرد که مایکروسافت سیلورلایت و ادوبی ایر به ترتیب بر روی C # و ActionScript 3 تکیه میکنند، که هر دو بزرگتر و پیچیدهتر از نسخه سوم اکما اسکریپت هستند.[23]
نسخه ۵
یاهو، مایکروسافت، گوگل و دیگر مخالفان نسخه چهارم، کمیته فرعی را برای طراحی یک به روز رسانی کمتر جاه طلبانهٔ اکما اسکریپت ۳ تشکیل دادند که بهطور آزمایشی ECMAScript 3.1 نامگذاری شد. این نسخه بر روی امنیت و به روز رسانی کتابخانهها تمرکز دارد و تأکید زیادی نیز بر سازگاری دارد.
پس اتفاق ذکر شده و بحث و اختلاف عموم، تیم ECMAScript 3.1 و ECMAScript 4 با سازش موافقت کردند:
"دو نسخه به طور موازی با هماهنگی بین تیمها کار خواهند کرد تا اطمینان حاصل شود که ECMAScript 3.1 همچنان یک زیرمجموعه اصلی از ECMAScript 4 در مفهوم و سینتکس زبان، خواهد ماند. "
با این حال، فلسفههای مختلف در هر تیم منجر به شکستهای مکرر در قانون زیرمجموعه شدن نسخههای قدیمی در نسخههای جدیدتر شد، و شکی ایجاد کرد که آیا مخالفان اکما اسکریپت ۴ در آینده از این نسخه حمایت خواهند کرد و آن را ارائه خواهند داد یا نه.
پس از گذشت بیش از یک سال از اختلاف نظر در مورد آینده اکما اسکریپت در کمیته ۳۹ فنی اکما، این دو تیم در ماه ژوئیه ۲۰۰۸ به توافق جدید دست یافتند: برندان آیک اعلام کرد که اکما TC39 بر روی پروژه اکما اسکریپت ۳٫۱ (که بعدها به اکما اسکریپت نسخه ۵ تغییر یافت) با همکاری کامل تمام گروهها و فروشندگان که حداقل دو پیادهسازی متقابل را تا اوایل سال ۲۰۰۹ هدف قرار میدهند با تمرکز کار خواهند کرد.[24][25]
در آوریل ۲۰۰۹، اکما TC39 طرح «نهایی» نسخه پنجم را منتشر کرد و اعلام کرد که تستهای پیادهسازیهای متقابل از این خبر میدهند که تا اواسط ماه ژوئیه کامل خواهند شد.[26]
در ۳ دسامبر ۲۰۰۹، نسخه پنجم، اکما-۲۶۲ منتشر شد.[27]
نسخه ۶ - اکما اسکریپت ۲۰۱۵
نسخه ششم، که ابتدا اکما اسکریپت ۶ (ES6) شناخته شد و بعداً به اکما اسکریپت ۲۰۱۵ تغییر نام یافت، در ژوئن ۲۰۱۵ نهایی شد.[9][28] این به روز رسانی دستورالعملهای جدیدی را برای نوشتن برنامههای پیچیده اضافه میکند، از جمله تعریف کلاسها (class Foo { }
) و ماژولهای ES6 مانند import * as moduleName from "..."; export const Foo
، اما آنها را به صورت معنایی در شرایطی همانند حالت سختگیر ECMAScript 5 تعریف میکند.
دیگر ویژگیهای جدید شامل تکرارکنندهها و حلقههای for
/of
، ایجاد کننده سبک پایتونی، اصطلاح تابع فلش چاق (“fat” arrow functions (=>
)) () => {...}
، کلمه کلیدیlet
برای متغییرهای محلی، کلمه کلیدی const
برای متغییرهای ثابت، دادههای باینری، آرایههای تایپ شده، مجموعههای جدید (مپها، مجموعهها و ویک مپ)، پرامیسها (promises)
var promise1 = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('foo');
}, 300);
});
promise1.then(function(value) {
console.log(value);
// expected output: "foo"
});
console.log(promise1);
// expected output: [object Promise]
// output :
//> [object Promise]
//> "foo"
، تکمیل امکانات اعداد و ریاضیات، انعکاس، پروکسیها و رشتههای تمپلت[29][30]
var bar = 1;
var tStr = `foo ${bar}`;
// tStr : "foo 1"
به عنوان اولین مشخصه "هارمونی اکما اسکریپت"، آن را به عنوان "هارمونی ES6 " نیز میشناسند.
نسخه ۷ - اکما اسکریپت ۲۰۱۶
نسخه هفتم، که بهطور رسمی اکما اسکریپت ۷ شناخته میشود، در ژوئن ۲۰۱۶ نهایی شد.[10]
ویژگیهای استاندارد اصلی عبارتند از بلوک دامنه برای متغیرها و توابع، الگوهای تخریب (برای متغیرها)، صدا زدن توابع دنباله وار، اپراتور توانی **
برای اعداد، کلمات کلیدیawait
وasync
برای برنامهنویسی به صورت غیر همزمان.[10][33]
نسخه ۸ - اکما اسکریپت ۲۰۱۷
نسخه هشتم، که بهطور رسمی اکما اسکریپت ۲۰۱۷ شناخته میشود، در ژوئن ۲۰۱۷ نهایی شد.[11] شامل ساختارهای async/await
که با استفاده از تولیدکنندهها و پرامیسها کار میکنند، میباشد.[34] اکما اسکریپت ۲۰۱۷ (ES2017)، نسخه هشتم، شامل ویژگیهایی برای همزمان سازی و برگردانندگی (صدا زدن توابع (call back))، ادغام سینتکس با پرامیسها (async / waiting) میباشد.[34][11]
نسخه ۹ - اکما اسکرپت ۲۰۱۸
نسخه ۹، که بهطور رسمی اکما اسکریپت ۲۰۱۸ شناخته میشود، در ژوئن ۲۰۱۸ نهایی شد.[7]
ویژگیهای جدید شامل اپراتور rest/spread برای متغیرها (علامت سه نقطه: foo...
)، تکرار غیر همزمان، متد نهایی (finally
) برای پرامیسها و اضافه کردن امکانات جدید به RegExp میباشد.[7]
نسخه ۱۰ - اکما اسکرپت ۲۰۱۹
نسخه ۱۰، که به طور رسمی اکما اسکرپت ۲۰۱۹ شناخته میشود، در ژوئن ۲۰۱۹ نهایی شد.[12]
نسخه ۱۱ - اکما اسکرپت ۲۰۲۰
نسخه ۱۱، که به طور رسمی اکما اسکرپت ۲۰۲۰ شناخته میشود، در ژوئن ۲۰۲۰نهایی شد.[13]
ES.Next
ای اس دات نکست نام پویایی است که به هر آنچه که نسخه بعدی در زمان نوشتن است، اشاره دارد. (در واقع امکانات نسخههای بعدی اکما اسکریپت)
ویژگیهای ای اس دات نکست بهطور صحیح پیشنهاد نامیده میشوند، زیرا، با این تعریف، مشخصات و امکانات آن هنوز مشخص و نهایی نشدهاست.
امکانات
زبان اکما اسکریپت شامل ویژگی های ساختاری ، پویا ، برنامه نویسی تابعی و مبتنی بر پیش نمونه است. [35]
سینتکس مختصر
ES6 با خود امکان استفاده از یک حالت جدید از تعریف توابع، به نام "توابع فلش" را آورده است. [36] در ES5 یک تابع به صورت زیر تعریف می شود:
var readWikiArticle = function(content) {
// مقاله را بخوان
};
در حالیکه در ES6، با استفاده از دستور جدید تابع فلش می توان آن را به صورت زیر نوشت:
var readWikiArticle = (content) => {
// مقاله را بخوان
};
توابع فلشی همچنین اتصال متغیر بین توابع را بهبود می بخشد.
ترنسپایل کردن
از اکما اسکریپت 2015 تاکنون، ترنسپایل جاوا اسکریپت بسیار رایج شده است.
ترنسپایل یک تلفیق متن به متن است که در آن نسخه های جدیدتر جاوااسکریپت در کد اصلی کاربر مورد استفاده قرار میگیرند و ترنسپایل کننده آنها را بازنویسی می کند تا با مشخصات فعلی سازگاری داشته باشند. [37]
معمولاً ترنسپایل کننده ها به نسخه ES3 برای حفظ سازگاری با تمام نسخه های مرورگر ترنسپایل می کنند.
تنظیمات لازم برای ترنسپایل به یک نسخه خاص می تواند بر اساس نیاز پیکربندی شوند. ترنسپایل کردن یک گام برای فرایند ساخت اضافه می کند و گاهی اوقات برای جلوگیری از استفاده از پولی فیلز (polyfills) نیز می تواند استفاده شود. Polyfills اجازه می دهد به وسیله ی یک فایل جاوا اسکریپتی که ویژگی های خاصی را اضافه می کند ویژگی های اضافی، اضافه شود.
سازگاری
در سال ۲۰۱۰، Ecma International شروع به ایجاد یک آزمون استاندارد برای اکما اسکریپت Ecma-262 کرد. [38]
Test262 یک مجموعه آزمون سازگاری اکما اسکریپت است که می تواند مورد استفاده قرار گیرد تا مقدار نزدیک پیاده سازی یک جاوا اسکریپت به مشخصات اکما اسکریپت ۵ را بررسی کند. مجموعه تست شامل هزاران تست اختصاصی است که هر کدام از آنها یک مشخصه ی خاص از مشخصات اکما اسکریپت را آزمایش می کند.
توسعه test262 یک پروژه کمیته ۳۹ فنی اکما (TC39) است. چارچوب تست ها و آزمایش های اختصاصی توسط اعضای سازمان های TC39 ایجاد شده و به اکما برای استفاده در Test262 کمک می کنند.
کمک های مهمی توسط گوگل (Sputnik testuite) و مایکروسافت که هر دو در بیش از هزاران آزمایش کمک کردند، شکل گرفت شد. مجموعه آزمون Test262 در حال حاضر شامل بیش از ۱۱،۰۰۰ آزمون است و توسعه آن تا تاریخ ۲۰۱۳ فراتر رفته است.
مشخصات اکما اسکریپت از طریق ES7 در مرورگرهای وب اصلی به خوبی پشتیبانی می شوند. جدول زیر نشان دهنده نرخ سازگاری نسخه های فعلی نرمافزار های مرورگرهای وب با توجه به آخرین نسخه های اخیر اکما اسکرپیت است.
موتور اسکریپت | برنامه های مرجع | سازگاری [39] | |||
---|---|---|---|---|---|
ES5 [40] | ES6 [41] | ES7 [42] | جدیدتر (2016 +) [42] [43] | ||
چاکرا Chakra | مایکروسافت اج 18 | 100٪ | 96٪ | 100٪ | 48٪ |
میمون عنکبوتی | فایرفاکس 67 | 100٪ | 98٪ | 100٪ | 83٪ |
کروم وی ۸ | گوگل کروم 75، اپرا 62 | 100٪ | 98٪ | 100٪ | 98٪ |
جاوا اسکریپت کور (Nitro) | سافاری 12.1 | 99٪ | 99٪ | 100٪ | 87٪ |
همچنین نگاه کنید
- مقایسه موتورهای طرح (ECMAScript)
- ECMAScript برای XML (E4X)
- JavaScript
- JScript
- فهرست موتورهای ECMAScript
منابع
-
Stefanov, Stoyan (2010). JavaScript Patterns. O'Reilly Media, Inc. p. 5. ISBN 9781449396947. Retrieved 2016-01-12.
The core JavaScript programming language [...] is based on the ECMAScript standard, or ES for short.
- "A Short History of JavaScript". W3C. Retrieved 31 March 2017.
- Krill, Paul (2008-06-23). "JavaScript creator ponders past, future". InfoWorld. Retrieved 2013-10-31.
- "Industry Leaders to Advance Standardization of Netscape's JavaScript at Standards Body Meeting". Netscape. November 15, 1996. Archived from the original on 1998-12-03. Retrieved 2013-10-31.
- "Will there be a suggested file suffix for es4?". Mail.mozilla.org. 2006-10-03. Archived from the original on 21 June 2020. Retrieved 2013-10-31.
- "JScript VS JavaScript". About.com. 2015-11-25.
- "ECMAScript 2018 Language Specification". Ecma International. June 2018.
- "Changes to JavaScript, Part 1: EcmaScript 5". YouTube. 2009-05-18. Retrieved 2013-10-31.
- "ECMAScript 2015 Language Specification". Ecma International. June 2015.
- "ECMAScript 2016 Language Specification". Ecma International. June 2016.
- "ECMAScript 2017 Language Specification". Ecma International. June 2017.
- Ecma International (June 2019). "ECMAScript 2019 Language Specification". https://en.wikipedia.org/wiki/Ecma_International (به eb). External link in
|وبگاه=
(help) - Ecma International (June 2020). "ECMAScript 2020 Language Specification". https://en.wikipedia.org/wiki/Ecma_International. External link in
|وبگاه=
(help) - 2015-03-24 Meeting Notes. ESDiscuss. Also see Ecma withdrawn Standards. ECMA.
- "ES4 overview paper released". Mail.mozilla.org. Retrieved 2013-10-31.
- "Proposed ECMAScript 4th Edition – Language Overview" (PDF). ecmascript.org. 23 October 2007. Archived from the original (PDF) on 13 July 2010.
- John Resig. "John Resig – Bug Fixes in JavaScript 2". Ejohn.org. Retrieved 2013-10-31.
- "Compatibility Between ES3 and Proposed ES4" (PDF). Ecmascript.org. Archived from the original (PDF) on 24 July 2014. Retrieved 2013-10-31.
- "Wayback Machine" (PDF). 2009-04-19. Retrieved 2018-03-19.
- "ECMAScript 3 and Beyond – IEBlog – Site Home – MSDN Blogs". Blogs.msdn.com. 2007-10-30. Retrieved 2013-10-31.
- "What I think about ES4. - Albatross! - Site Home – MSDN Blogs". Blogs.msdn.com. 2007-10-31. Retrieved 2013-10-31.
- "Open letter to Chris Wilson". Brendan Eich. 2007-10-31. Archived from the original on 16 September 2011. Retrieved 2013-10-31.
- "JavaScript 2 and the Open Web". 2007-11-20. Retrieved 2014-01-20.
- "ECMAScript Harmony". Mail.mozilla.org. Retrieved 2013-10-31.
- "A Major Milestone in JavaScript Standardization – JScript Blog – Site Home – MSDN Blogs". Blogs.msdn.com. 2009-04-09. Retrieved 2013-10-31.
- "Ecma International finalises major revision of ECMAScript". Ecma International. 2009-04-09. Retrieved 2009-05-22.
- "Ecma latest news". Ecma-international.org. Retrieved 2013-10-31.
- Krill, Paul. "It's official: ECMAScript 6 is approved". InfoWorld. Retrieved 2018-03-19.
- "5 Great Features in EcmaScript 6 (ES6 Harmony) - Wintellect". Wintellect. 2014-03-24. Archived from the original on 22 July 2017. Retrieved 2018-03-19.
- "ECMAScript 6 (ES6): What's New In The Next Version Of JavaScript". Smashing Magazine. 2015-10-28. Retrieved 2018-03-19.
- "ECMAScript 6: New Features: Overview and Comparison". es6-features.org. Retrieved 2018-03-19.
- "Standard ECMA-262 6th Edition / June 2015 ECMAScript® 2015 Language Specification 14.2 Arrow Function Definitions". www.ecma-international.org. 2015.
- Saboff, Michael (2016-05-23). "ECMAScript 6 Proper Tail Calls in WebKit". WebKit. Retrieved 2019-04-11.
- "ECMAScript 2017 (ES8): the final feature set". 2ality. Retrieved 2018-04-23.
- "About". ECMAScript. Archived from the original on 2012-08-02. Retrieved 2009-12-17.
- "Arrow Functions: Fat and Concise Syntax in JavaScript". SitePoint. 2018-04-09. Retrieved 2018-11-21.
- "Using ES2015 today". Wisdom Geek. 2016-05-12. Retrieved 2018-08-29.
- "ECMAScript Language – test262". Test262.ecmascript.org. Archived from the original on 2011-05-14. Retrieved 2013-10-31.
- ES5 is the baseline for this test suite. The conformance rate for other editions reflects support for new features only, not a comprehensive score.
- "ECMAScript 5 compatibility table". kangax.github.io. Retrieved 2018-11-08.
- "ECMAScript 6 compatibility table". kangax.github.io. Retrieved 2018-11-08.
- "ECMAScript 2016+ compatibility table". kangax.github.io. Retrieved 2018-11-08.
- Composite score that includes new features from ES7 through next edition drafts
پیوند به بیرون
- ایزو استاندارد
- استانداردهای اکما