اکما اسکریپت
پارادایم برنامهنویسی | چندالگویی: بر پایه پیشنمونه، تابعی، دستوری |
---|---|
طراحی شده توسط | برندان آیک، سازمان بینالمللی اکما |
ظهوریافته در | ۱۹۹۷ |
کمزور، پویا | |
وبگاه | |
پیادهسازیهای بزرگ | |
JavaScript, SpiderMonkey, V8, ActionScript, JScript, QtScript, InScript, Google Apps Script | |
متأثر از | |
Self, HyperTalk, AWK, C, CoffeeScript, پرل, پایتون, جاوا, Scheme |
پسوند(های) نام پرونده | .es |
---|---|
نوع رسانهٔ اینترنتی | application/ecmascript |
توسعهدهنده | سان مایکروسیستمز، شرکت بینالمللی اکما |
ارائهٔ اولیه | ژوئن ۱۹۹۷ |
آخرین نسخه | ویرایش ۱۰ (ژوئن ۲۰۱۹ ) |
گونه | زبان اجرانامهنویسی |
وبگاه |
اکما اسکریپت (به انگلیسی: ECMAScript) با کوتهنوشت ES[۱] مشخصات یک زبان اسکریپتی است که توسط اکما اینترنشنال در ECMA-262 و ISO/IEC 16262 استاندارد شدهاست. اکما اسکریپت برای استانداردسازی جاوا اسکریپت ایجاد شدهاست تا بتواند پیادهسازی چندگانه مستقل را تقویت کند. از زمان انتشار اولین استاندارد، جاوا اسکریپت به عنوان معروفترین پیادهسازی اکما اسکریپت، باقی مانده است. دیگر پیادهسازی های شناخته شده شامل جیاسکریپت و اکشناسکریپت میشوند.[۲]
اکما اسکریپت بهطور معمول برای اسکریپ نویسی سمت کلاینت در وب جهان گستر و بهطور فزایندهای برای نوشتن برنامههای سرور و سرویسهایی که از نود جیاس استفاده میکنند، استفاده میشود.
تاریخ
[ویرایش]مشخصات اکما یک ویژگی استاندارد شده از یک زبان اسکریپتی است که توسط برندان آیک از نت اسکیپ طراحی شدهاست. در ابتدا موچا، بعداً لایو اسکریپت، و در نهایت جاوا اسکریپت نامگذاری شد.[۳] در دسامبر ۱۹۹۵ سان مایکروسیستمز و نت اسکیپ جاوا اسکریپت را در مطبوعات اعلام کردند.[۴] اولین نسخه اکما-۲۶۲ توسط مجمع عمومی اکما در ژوئن ۱۹۹۷ تصویب شد. چندین نسخه استاندارد زبان از آن زمان منتشر شدهاست. نام «اکما اسکریپت» بین سازمانهای مربوط به استانداردسازی زبان با سازش انتخاب شد، به خصوص نت اسکیپ و مایکروسافت، که اختلافات آنها در جلسات اولیه استانداردها جلسات را تحت سلطه خود درمیآورد. آیک اظهار داشت که «اکما اسکریپت همیشه یک نام تجاری نامناسب است که به نظر میرسد مانند یک بیماری پوستی است.»[۵]
در حالی که هر دوی جاوا اسکریپت و جی اسکریپت با اکما اسکریپت سازگار هستند، آنها همچنین ویژگیهای اضافی را که در مشخصات اکما مشخص نشدهاند، ارائه میدهند.[۶]
تاریخچه نسخهها
[ویرایش]امکانات
[ویرایش]زبان اکما اسکریپت شامل ویژگیهای ساختاری، پویا، برنامهنویسی تابعی و مبتنی بر پیش نمونه است.[۷]
سینتکس مختصر
[ویرایش]ES6 با خود امکان استفاده از یک حالت جدید از تعریف توابع، به نام «توابع فلش» را آوردهاست.[۸] در ES5 یک تابع به صورت زیر تعریف میشود:
var readWikiArticle = function(content) {
// مقاله را بخوان
};
در حالیکه در ES6، با استفاده از دستور جدید تابع فلش میتوان آن را به صورت زیر نوشت:
var readWikiArticle = (content) => {
// مقاله را بخوان
};
توابع فلشی همچنین اتصال متغیر بین توابع را بهبود میبخشد.
ترنسپایل کردن
[ویرایش]از اکما اسکریپت ۲۰۱۵ تاکنون، ترنسپایل جاوا اسکریپت بسیار رایج شدهاست. بطور تکنیکی، امکانات جدید اکما اسکریپت در ورژن های جدید نوعی سینتکس قندی هستند. [۹]
ترنسپایل یک تلفیق متن به متن است که در آن نسخههای جدیدتر جاوااسکریپت در کد اصلی کاربر مورد استفاده قرار میگیرند و ترنسپایل کننده آنها را بازنویسی میکند تا با مشخصات فعلی سازگاری داشته باشند.[۱۰]
معمولاً ترنسپایل کنندهها به نسخه ES3 برای حفظ سازگاری با تمام نسخههای مرورگر ترنسپایل میکنند.
تنظیمات لازم برای ترنسپایل به یک نسخه خاص میتواند بر اساس نیاز پیکربندی شوند. ترنسپایل کردن یک گام برای فرایند ساخت اضافه میکند و گاهی اوقات برای جلوگیری از استفاده از پولی فیلز (polyfills) نیز میتواند استفاده شود. Polyfills اجازه میدهد به وسیلهٔ یک فایل جاوا اسکریپتی که ویژگیهای خاصی را اضافه میکند ویژگیهای اضافی، اضافه شود.
سازگاری
[ویرایش]در سال ۲۰۱۰، Ecma International شروع به ایجاد یک آزمون استاندارد برای اکما اسکریپت Ecma-262 کرد.
Test262 یک مجموعه آزمون سازگاری اکما اسکریپت است که میتواند مورد استفاده قرار گیرد تا مقدار نزدیک پیادهسازی یک جاوا اسکریپت به مشخصات اکما اسکریپت ۵ را بررسی کند. مجموعه تست شامل هزاران تست اختصاصی است که هر کدام از آنها یک مشخصهٔ خاص از مشخصات اکما اسکریپت را آزمایش میکند.
توسعه test262 یک پروژه کمیته ۳۹ فنی اکما (TC39) است. چارچوب تستها و آزمایشهای اختصاصی توسط اعضای سازمانهای TC39 ایجاد شده و به اکما برای استفاده در Test262 کمک میکنند.
کمکهای مهمی توسط گوگل (Sputnik testuite) و مایکروسافت که هر دو در بیش از هزاران آزمایش کمک کردند، شکل گرفت شد. مجموعه آزمون Test262 در حال حاضر شامل بیش از ۱۱٬۰۰۰ آزمون است و توسعه آن تا تاریخ ۲۰۱۳[بروزرسانی] فراتر رفتهاست.
مشخصات اکما اسکریپت از طریق ES7 در مرورگرهای وب اصلی به خوبی پشتیبانی میشوند. جدول زیر نشان دهنده نرخ سازگاری نسخههای فعلی نرمافزارهای مرورگرهای وب با توجه به آخرین نسخههای اخیر اکما اسکرپیت است.
موتور اسکریپت | برنامههای مرجع | سازگاری[۱۱] | |||
---|---|---|---|---|---|
ES5[۱۲] | ES6[۱۳] | ES7 (2016)[۱۴] | جدیدتر (2017 +)[۱۴][۱۵] | ||
مانکی اسپایدر | فایرفاکس ۹۴ | ۱۰۰٪ | ۹۸٪ | ۱۰۰٪ | ۱۰۰٪ |
کروم وی ۸ | اپرا ۸۰، گوگل کروم ۹۵، مایکروسافت اج ۹۵ | ۱۰۰٪ | ۹۸٪ | ۱۰۰٪ | ۱۰۰٪ |
جاوا اسکریپت کور (Nitro) | سافاری ۱۵ | ۱۰۰٪ | ۹۹٪ | ۱۰۰٪ | ۹۰٪ |
جستارهای وابسته
[ویرایش]منابع
[ویرایش]- ↑ Stefanov, Stoyan (2010). JavaScript Patterns. O'Reilly Media, Inc. p. 5. ISBN 978-1-4493-9694-7. 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. Archived from the original on 25 November 2017. 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. Archived from the original on 26 November 2015. Retrieved 21 June 2019.
- ↑ "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.
- ↑ "Syntactic Sugar and JavaScript Diabetes". freeCodeCamp.org (به انگلیسی). 2018-02-07. Retrieved 2024-10-08.
- ↑ "Using ES2015 today". Wisdom Geek. 2016-05-12. Retrieved 2018-08-29.
- ↑ 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 (به انگلیسی). Archived from the original on 19 November 2018. Retrieved 2018-11-08.
- ↑ "ECMAScript 6 compatibility table". kangax.github.io (به انگلیسی). Archived from the original on 17 November 2018. Retrieved 2018-11-08.
- ↑ ۱۴٫۰ ۱۴٫۱ "ECMAScript 2016+ compatibility table". kangax.github.io (به انگلیسی). Archived from the original on 24 November 2018. Retrieved 2018-11-08.
- ↑ Composite score that includes new features from ES7 through next edition drafts
پیوند به بیرون
[ویرایش]ایزو استاندارد
[ویرایش]استانداردهای اکما
[ویرایش]- استانداردهای ئیسیامای
- استانداردهای رایانه
- زبانهای اسکریپتنویسی
- زبانهای برنامهنویسی بر پایه پیشنمونه
- زبانهای برنامهنویسی خانواده سی
- زبانهای برنامهنویسی دارای استاندارد ایزو
- زبانهای برنامهنویسی ماشینی پویا
- زبانهای برنامهنویسی مبتنی بر شیء
- معرفیشدههای مرتبط با رایانه در ۱۹۹۷ (میلادی)
- کامپایلرهای کد منبع به کد منبع