آموزش ECMAScript 6

آنچه در این صفحه می خوانید:

معرفی اکما اسکریپت (ECMAScript)

اکما اسکریپت (ECMAScript) زبان اسکریپت نویسی است که توسط ECMAScript International استاندارد شده است.ECMAScript معمولاً برای اسکریپت نویسی سمت کلاینت در وب استفاده می شود و به طور فزاینده ای برای نوشتن برنامه ها و سرویس های سرور با استفاده از نود جی اس مورد استفاده قرار می گیرد. ECMAScript تحت تاثیر زبان های برنامه نویسی مانند پرل، پایتون،جاوا، JavaScript، Jscript و ActionScript است. ECMAScript 6، همچنین به عنوان ECMAScript 2015 شناخته می شود.

ECMAScript برای استانداردسازی جاوااسکریپت جهت کمک به تقویت پیاده سازی مستقل ایجاد شده است. جاوااسکریپت از زمان انتشار اولین استاندارد، با کاربردهای دیگر از جمله JScript و ActionScript، بیشترین کاربرد را در ECMAScript داشته است.

تاریخچه اکما اسکریپت (ECMAScript)

ECMAScript یک استاندارد از زبان برنامه نویسی است که توسط Brendan Eich از Netscape تهیه شده است. در ابتدا آن را Mocha، سپس LiveScript و سرانجام JavaScript نامگذاری کردند. در دسامبر 1995، Sun Microsystems و Netscape JavaScript را در بیانیه مطبوعاتی اعلام کردند. نسخه اول ECMA-262 توسط مجمع عمومی اكما در ژوئن 1997 به تصویب رسید.

از آن زمان تاکنون چندین نسخه از زبان استاندارد منتشر شده است. "ECMAScript" نام منتخب در جلسات مورد اختلاف بین سازمان های درگیر در استاندارد سازی زبان به ویژه Netscape و مایکروسافت بوده است. اگرچه JavaScript و JScript هر دو هدف سازگاری با ECMAScript را دارند، همچنین ویژگی های دیگری را ارائه می دهند که در مشخصات ECMA توصیف نشده است.

ویژگی های اکما اسکریپت (ECMAScript)

زبان ECMAScript شامل ویژگی های زیر است:

دستوری و ساختاری

ECMAScript جاوااسکریپت از برنامه نویسی ساختاری سبک C پشتیبانی می کند. با این حال، برخی از تفاوت ها بین اجرای هر دو زبان در برنامه ها وجود دارد. تا قبل از ECMAScript 2015، جاوااسکریپت فقط با استفاده از کلمه کلیدی var از scoping عملکرد را پشتیبانی می کرد. ECMAScript 2015 با اضافه کردن کلمات کلیدی let و const به JavaScript اجازه می دهد تا از هر دو برنامه بلوک و همچنین  توابع پشتیبانی کند. جاوااسکریپت از درج خودکار سمیکالون پشتیبانی می کند.

تایپ ضعیف شده

ECMAScript جاوااسکریپت تایپ ضعیف شده است. این بدان معنی است که تایپ های خاصی براساس عملیاتی که انجام می شود به طور ضمنی اختصاص داده می شوند. با این وجود، چندین تناقض در اجرای جاوااسکریپت برای تبدیل یک متغیر از یک نوع به نوع دیگر وجود دارد. این تناقضات انتقاد بسیاری از توسعه دهندگان را به خود جلب کرده است.

پویا

ECMAScript جاوااسکریپت به صورت پویا تایپ می شود. بنابراین ، تایپ به جای اکسپریشن با مقدار (Value) همراه است. ECMAScript JavaScript از روش های مختلفی برای تست تایپ آبجکت، از جمله duck typing پشتیبانی می کند.

انتقال

از سال ES 2015، انتقال JavaScript بسیار رایج شده است. Transpilation مجموعه ای از کامپایلر سورس به سورس است که در آن از نسخه های جدیدتر JavaScript در سورس کد کاربر استفاده شده و فرستنده آنها را مجدداً بازنویسی می کند تا مطابق با مشخصات فعلی مطابقت داشته باشد. معمولاً Transpilation برای حفظ سازگاری با تمامی نسخه های مرورگرها، به ES3 تبدیل می شوند. تنظیمات انتقال به نسخه خاص با توجه به نیاز می توانند پیکربندی شوند. انتقال یک مرحله اضافی به فرایند ساخت اضافه می کند و بعضی اوقات برای جلوگیری از نیاز به Polyfill انجام می شود. Polyfills اجازه می دهد تا از ویژگی های نسخه های جدیدتر ECMA در محیط های قدیمی که فاقد آنها هستند استفاده شود. Polyfills این کار را در ران تایم در مفسر، مانند مرورگر کاربر یا روی سرور انجام می دهد. درعوض، قبل از رسیدن به مفسر، کد ECMA را در مرحله بیلد بازنویسی می شود.

تفاوت بین جاوااسکریپت و اکما اسکریپت (ECMAScript)

جاوااسکریپت

ابتدا JavaScript با عنوان LiveScript شناخته می شد، اما Netscape نام خود را به JavaScript تغییر داد، احتمالاً به دلیل هیجان ناشی از جاوا. JavaScript اولین بار در سال 1995 با نام LiveScript در Netscape 2.0 ظاهر شد. هسته اصلی این زبان در Netscape، Internet Explorer و سایر مرورگرهای وب تعبیه شده است. استاندارد زبان های برنامه نویسی مانند JavaScript ECMAScript است.

ECMAScript

فرم کامل ECMA، انجمن تولید کننده رایانه اروپا است. ECMAScript یک استاندارد برای زبان های اسکریپت مانند JavaScript، JScript و غیره است. JavaScript زبانی مبتنی بر ECMAScript است.  JavaScript به عنوان یکی از محبوب ترین پیاده سازی های ECMAScript در نظر گرفته شده است.

مثال اکما اسکریپت (ECMAScript)

کلاس های ES6 دارای سینتکس ساده نسبت به الگوی OO مبتنی بر نمونه اولیه است. داشتن یک فرم اعلامیه ای مناسب، استفاده از الگوهای کلاس را آسان تر کرده و قابلیت همکاری را ترغیب می کند. کلاس ها از وراثت مبتنی بر نمونه اولیه، نمونه ها و روش های ایستا پشتیبانی می کنند.

در اینجا یک مثال ساده از کلاس آورده شده است:

class SkinnedMesh extends THREE.Mesh {
  constructor(geometry, materials) {
    super(geometry, materials);

this.idMatrix = SkinnedMesh.defaultMatrix(); this.bones = []; this.boneMatrices = []; //... } update(camera) { //... super.update(); } get boneCount() { return this.bones.length; } set matrixType(matrixType) { this.idMatrix = SkinnedMesh[matrixType](); } static defaultMatrix() { return new THREE.Matrix4(); } }

نظرتون درباره این نوشته چیه؟ عالیه بد نیست خوب نبود