با ES6 جاوااسکریپت را در ردای بزرگان تجربه کنید
به طور قطع یکی از بهترین همراهان دنیای اینترنت، زبان جاوااسکریپت است. جاوااسکریپت با ویژگیهای جالب و کاربردی خود روح تازهای به اینترنت بخشید و بسیاری از ناممکنهای آن دوران را ممکن کرد. بعد از جا افتادگی در بین کاربران و پس دادن امتحانات بسیار، نوبت به آن رسیده است که این قدرت در قالبی بسیار معمولتر و کاربردیتر در اختیار دنیا قرار بگیرد.
نسخهی قبل ECMAScript که پنجمین ارائه از این مجموعه به حساب میآمد به چشم تمام برنامه نویسان وب آشناست و تقریبا اکثر ما جاوااسکریپت را با syntax این نسخه میشناسیم. ویژگیهای کاربردی زیادی از جمله strict mode و همچنین پشتیبانی از JSON در ECMAScript 5 اضافه شدند و در سال ۲۰۰۹ در اختیار ما قرار گرفتند. در سال ۲۰۱۱ هم نسخهی ۵.۱ ارائه شد که بیشتر جنبهی استاندارد سازی داشت.
سرانجام در june سال ۲۰۱۵ نسخهی ششم ECMAScript ارائه شد که با نامهای ECMAScript 2015 یا ES6 شناخته میشود. ارائهی این نسخه روح تازهای در کالبد این زبان دمید و ویژگیهایی به آن اضافه کرد که قبلتر در زبانهای مطرح بازار وجود داشت و جای خالی آنها احساس میشد. در ادامه همراه ما باشید تا این ویژگیهای جدید را ببینیم. در مقالههای بعدی به طور مفصل هر کدام از این ویژگیها را بررسی خواهیم کرد.
let / const
let و const دو کلمهی کلیدی جدید هستند که برای تعریف متغیر به کار میروند.
// ES5 var a = 3.14; var b = 2 * a; // ES6 const a = 3.14; let b = 2 * a;
از const برای تعریف متغیرهای ثابت و از let برای تعریف بقیه متغیرها استفاده میکنیم.
destructuring
یکی از کاربردهای خوب destructuring هنگام استفاده از objectها خودش را نشان میدهد.
var name = { part1: 'zero', part2: 'to', part3: 'hero' }; // ES5 console.log(name.part1 + name.part2 + name.part3); // ES6 const { part1, part2, part3 } = name; console.log(part1 + part2 + part3);
با استفاده از این ویژگی همانطور که در خط ۱۱ میبینیم میتوان بخشهایی از object را به سادگی به متغیرهایی با همان نام اختصاص داد و استفاده کرد.
template string
با استفاده از این ویژگی میتوان متغیرها را به سادگی در متنها جایگذاری کرد.
var a = 4; var text = ''; // ES5 text = 'you have ' + a + 'items'; // ES6 text = `you have ${a} items`;
با استفاده از کاراکتر ` در دو طرف متن، میتوانیم متغیرها را با گذاشتن ${اسم متغیر} به متن اضافه کنیم.
arrow function
arrow function ظاهر جدیدی برای تعریف تابع ارائه میدهد و در آن کلمهی کلیدی function حذف شده است.
// ES5 var sum = function(x, y) { }; // ES6 const come = (x, y) => { };
rest / spread
با استفاده از مفهومی به نام rest میتوانیم تعداد آرگومانهای ورودی را آزاد بگذاریم. به این شکل که، بعد از تعریف کردن آرگومانهای مورد نیاز، بقیه آرگومانها را به عنوان یک آرایه دریافت کنیم.
function a(o, ...p) { console.log(o, p[0], p[1]); } a(1, 2, 3);
با استفاده از spread میتوانیم به راحتی مقدار آرایهها و … را در هم کپی کنیم.
var a = [1, 2, 3]; var b = [4, 5, 6]; var c = [...a, ...b]; // c = [1, 2, 3, 4, 5, 6]
array helper
array helperها متدهایی هستند که برای آرایهها ارائه شدند و کارهایی مثل map کردن یا پیدا کردن عنصری خاص را برای ما راحتتر کردند.
var numbers = [1, 2, 3]; numbers.forEach(function(number) { console.log(number); });
برای مثال، با استفاده از forEach میتوان به تکتک عناصر موجود در آرایه دسترسی پیدا کرد.
class
قابلیت دیگری که در ES6 به جاوااسکریپت اضافه شد، توانایی ایجاد کلاس است. در گذشته برای اینکه مفهوم کلاس را پیاده سازی کنیم دردسرهای زیادی داشتیم و باید به prototypeها مسلط میبودیم ولی با استفاده از ES6 میتوانیم به راحتی کلاسهای مورد نظر خود را ایجاد کنیم.
class Car { constructor() { this.x = 0; this.y = 0; this.z = 0; } move(x, y, z) { this.x += x; this.y += y; this.z += z; } }
generator
با استفاده از generatorها میتوانیم در قسمتهای مختلف کد نقطههای توقف ایجاد کنیم و در زمان مناسب ادامهی کد را اجرا کنیم.
function* test() { yield 'one'; yield 'two'; } const gen = test(); console.log(gen.next().value); console.log(gen.next().value); console.log(gen.next().value);
با استفاده از * بعد از function میتوانیم یک generator تعریف کنیم. با استفاده از yield نقطههای توقف تابع را مشخص میکنیم. با استفاده از next() به برنامه میگوییم اجرای تابع را تا yield بعدی ادامه بده.
promise
promise برای کاربردهای غیرهمزمان در جاوااسکریپت به کار میرود. با استفاده از promise میتوانیم بخشهایی را برای کد تعریف کنیم که در صورت اتمام موفق آمیز یا ناموفق بخش دیگری از کد شروع به اجرا کند.
var i = 1; var p = new Promise(function(resolve, reject) { if (i == 1) { resolve(); } else { reject(); } }); p.then(function() { console.log('yes'); }).catch(function() { console.log('no'); });
ویژگیهای دیگر
تمام این موارد تنها بخشی از قابلیتهای ES6 بودند. بسیاری از قابلیتهای دیگر برای کار با اعداد و objectها و … ارائه شدهاند که کار با جاوااسکریپت را از همیشه جذابتر کردهاند.
موارد بالا قابلیتهایی بودند که قرار است در آیندهی نزدیک در صفرتاقهرمان به صورت عمیقتر مورد بررسی قرار بگیرند؛ پس اگر از علاقهمندان به یادگیری ES6 هستید با ما همراه باشید.
مطالب زیر را حتما مطالعه کنید
جاوا اسکریپت چیست؟
متدهایی از جاوا اسکریپت که مهارت های شما را بالا می برد!
5 ترفند css3 با عناصر کاذب before:: و after::
آشنایی با Protobuf
7 ویژگی Sass به همراه کد
شروع کار با Sass
3 Comments
Join the discussion and tell us your opinion.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
خیلی خوبه 👌
بسیار عالی بود
ممنون از همراهیتون
🙂