در ابتدا لازم است تا با مفهوم اکما برای درک بهترES6 اسکریپت آشنا شوید. اکما اسکریپت زبان جدیدی نیست و فقط یک استداندارد هست که برای زبان برنامه نویسی جاوااسکریپت تعیین شده است.
اکما یک سازمان بین المللی است که کار تعریف استانداردهای سیستمهای کامپیوتری و ارتباط سیستمها را انجام میدهد. این سازمان از سال ۱۹۶۱ کار خودش را از اروپا شروع کرده و کار تعریف استانداردها را بر عهده دارد و از سال ۱۹۹۴ با عنوان فعلی خود یعنی ECMA شناخته میشود.
اگر دقت کنید مرورگرهای مختلف هر کدام برای خود موتوری دارند که کدهای جاوا اسکریپت را تحلیل و اجرا میکنند، اگر استاندارد واحدی برای شناسایی زبان جاوا اسکریپت وجود نداشته باشد هر موتور به روش خودش کدهای جاوا اسکریپت را اجرا میکند که در این صورت فاجعه رخ میدهد.
جاوا اسکریپت بر اساس استاندارد ECMA-۲۶۲ توسعه داده میشود و شرکتها از مرورگرهای مختلف به واسطه این استاندارد از زبان جاوا اسکریپت پشتیبانی میکنند.
شرکت Oracle یک نشان تجاری به نام JavaScript دارد، بنابراین استاندارد واقعی که جاوا اسکریپت مدرن پیادهسازی میکند به نام استاندارد ECMAScript یا به اختصار ES خوانده میشود. استاندارد اولیه جاوا اسکریپت ECMAScript 5 یا ES5 نام داشت که در سال ۲۰۰۹ عرضه شد. این جاوا اسکریپت خالص بدون هیچ قابلیت اضافی بود که در همه جا حتی در IE9 پشتیبانی میشود.
ES6 یک استاندارد نسبتاً جدید است که در سال ۲۰۱۵ عرضه شده است و از قابلیتهای جدید زیادی پشتیبانی میکند. این استاندارد از نظر فنی ES2015 نامیده میشود و هر نسخه سالانه پس از آن نیز بر اساس سال انتشار مشخص میشود. اما در هر حال اغلب افراد آن را ES6 مینامند و از این رو ما نیز از همین عنوان استفاده میکنیم.
ES6 به طور خاص از این جهت مهم است که یک نشانه از آغاز استانداردسازی جاوا اسکریپت محسوب میشود. امروزه ECMA هر سال یک نسخه جدید ارائه میکند. اما ES6 شش سال پیش و پس از ES5 عرضه شد که 10 سال پس از ES3 بود و از این رو یک سنگ نشانه مهم در این مسیر محسوب میشود.
آنچه در این نوشته خواهیم داشت
چگونه از ساختار ES6 استفاده کنیم؟
ES6 در عمل در جاهای زیادی پشتیبانی میشود و تنها مشکل عمده در زمینه اینترنت اکسپلورر است. بنابراین گرچه شما میتوانید شروع به نوشتن استایل ES6 بکنید، اما نمیتوانید مطمئن باشید که روی مرورگر همه افراد رفتار یکسانی خواهد داشت.
امروزه ES6 به طور معمول به کمک ابزاری مانند Babel به ساختار ES5 کامپایل میشود. Babel یک کامپایلر است که کد توسعه (کدی که در ES6 با همه ویژگیهای آن نوشته شده است را به کدی تبدیل میکند که روی سایت پروداکشن اجرا میشود و در اغلب موارد نیز به کمک webpack به صورت باندلشده و minify-شده عرضه میشود.
طرز کار آن این گونه است که شما در محیط توسعه خود برخی فایلهای js. مینویسید. شما آزاد هستید که از هر ساختار زیبای ES6 که دوست دارید استفاده کنید. اما به جای این که این کد مستقیماً اجرا شود، Webpack را طوری تنظیم میکنید که فایلهای JS را با Babel بارگذاری کند. در اغلب موارد شما باید webpack-dev-server را اجرا کنید تا در زمان ایجاد تغییرها این کار تبدیل به صورت خودکار اجرا شود.
مطالعه مقالات زیر در حوزه آموزش جاوااسکریپت به شما عزیزان توصیه می شود:
چرا جاوا اسکریپت هر روز محبوب تر می شود؟
قابلیتهای جدید ES6
• let در جاوا اسکریپت
• const در جاوا اسکریپت
• انعکاس (**)
• مقادیر پیش فرض
• ()Array.find
• ()Array.findIndex
Safari 10 و Edge 14 اولین مرورگر هستند که به طور کامل از ES6 پشتیبانی می کنند.
let در جاوا اسکریپت
دستور let اجازه می دهد تا شما بتوانید یک متغیر با دامنه بلوک (سطح block scope) تعریف کنید.
const در جاوا اسکریپت
دستور const به شما اجازه می دهد یک ثابت (یک متغیر جاوا اسکریپت با مقدار ثابت) را اعلام کنید. ثابت ها شبیه به متغیرها هستند، به جز اینکه مقدار ثابت ها را نمی توان تغییر داد.
عملگر exponentiation
عملگر exponentiation (**) اولین عملگر را به اندازه ی عملگر دوم ارتقا می دهد.
مقادیر پارامتر پیش فرض
ES6 اجازه می دهد که پارامترهای تابع مقادیر پیش فرض داشته باشند.
()Array.find
متد ()find مقدار عنصر آرایه اول که یک تابع تست را می گذارد باز می گرداند.
()Array.findIndex
متد ()findIndex شاخص عنصر آرایه اول که یک تست را می گذراند، باز می گرداند.
خصوصیات عددی جدید
ES6 خصوصیات زیر را برای آبجکت عدد اضافه کرده است:
• EPSILON
• MIN_SAFE_INTEGER
• MAX_SAFE_INTEGER
متدهای عددی جدید
ES6 دو متد جدید را به آبجکت عددی اضافه می کند :
• ()Number.isInteger
• ()Number.isSafeInteger
• متد ()Number.isInteger
متد () Number.isInteger
اگر آرگومان یک integer باشد، true برگردانده می شود.
متد ()Number.isSafeInteger
یک عدد صحیح ایمن یک عدد صحیحی است که دقت مضاعف (double) را نشان داده می دهد. اگر آرگومان از نوع safe integer باشد، متد ()Number.isSafeInteger مقدار true را برمی گرداند. اعداد صحیح ایمن تمام اعداد صحیح از – (۲۵۳ – ۱) تا + (۲۵۳ – ۱) است. این ایمن است: ۹۰۰۷۱۹۹۲۵۴۷۴۰۹۹۱٫ این ایمن نیست: ۹۰۰۷۱۹۹۲۵۴۷۴۰۹۹۲٫
متدهای عمومی جدید
ES6 همچنین دو متد عمومی جدیدی را معرفی کرده است :
• ()isFinite
• isNan
متد ()isFinite
در صورتی آرگومان NaN و یا بی نهایت باشد، این متد false برمی گرداند و در غیر این صورت نتیجه true خواهد بود:
متد ()isNaN
اگر آرگومان NaN باشد آنگاه این متد مقدار true را برمی گرداند، و در غیر این صورت false خواهد بود.
توابع arrow
توابع Arrow اجازه ی سینتکس کوتاه برای نوشتن عبارات تابع را می دهد. شما به کلیدواژه function ، کلمه کلیدی return و براکت های curly brackets نیاز ندارید. توابع Arrow این کارایی را ندارند. آنها برای تعریف روش های آبجکت مناسب نیستند. توابع Arrow افزایش نمی یابد. آنها باید قبل از استفاده از آنها تعریف شوند. استفاده از const امن تر از استفاده از var است، زیرا یک عبارت تابع همیشه مقدار ثابت است. شما فقط می توانید اگر عملکرد یک بیانیه واحد باشد.،کلمات return و براکت های curly را حذف کنید. از این جهت ممکن است عادت خوبی باشد که همیشه آنها را حفظ کنید.
جمعبندی
ES6، مخفف ECMAScript 6 است که می توان مهم ترین تغییر در استاندارد ES دانست. تا قبل از ارائه ES6 در سال 2015، نسخه های قبلی استاندارد ES، دارای تداخل های بسیاری بوده و ناهماهنگی زیادی با یکدیگر داشتند که شرکت ECMA International با جمع آوری و ارائه ES6، همه آن ها را برطرف کرد. امیدوارم در این مطلب که سعی شد به زبان ساده ویژگیها و کاربردهای ES6 جاوا اسکریپت را توضیح دهیم آشنا شده باشید.