سلام دوستان خوش اومدین به بخش دوم، در بخش اول به بررسی چهار عنوان اول از لیست زیر پرداختیم که اگر مطالعه نکردین میتونین از اینجا مطالعه کنید.
لیست تغییرات این نسخه :
خیلی از مواقع میخواهیم متغیری را میان یک رشته قرار دهیم مخصوصا وقتی با HTML کار میکنیم.
خب کاری که در ES5 می کردیم اینطوری بود :
var message = "my name is : " + person.name + "\n" ;
حالا در ES6 این کارو میتونیم خیلی راحت تر انجام بدیم :
var message = `my name is: ${person.name} \n`;
با کمک `` این دو عزیز که خیلی کم کسی ازشون استفاده میکنه و کمتر کسی اسمشو میدونه میشه در میان رشته با استفاده از {}$ متغیر را قرار داد.
رشته ها از یک سری کاراکتر تشکیل شده اند که پشت سر هم آمده اند، خب حالا در ES6 این امکان وجود داره که بشه به کاراکترهای رشته ها مثل خانه های آرایه دسترسی داشت.
const city = ”tehran”; console.log(city[2]); // h console.log(city[3]); // r console.log(“virgool”[4]); // o
جاوا اسکریپت یک زبان async هست و خیلی از مواقع نیاز داریم که از callback ها استفاده کنیم. وقتی نیاز باشه این callback ها تو دل هم صدا زده بشن در انتها یک کد ناخوانا و پیچیده خواهیم داشت. خوشبختانه در این مورد promises ها در ES6 به ما کمک می کنند.
یک promise یه صورت زیر تعریف میشه :
const somePromise = new Promise((resolve, reject) => { if (false) { resolve([20, 30, 40]); } else { reject("some error occur"); } });
ورودی های resolve , reject هستند که در صورت موفق بودن باید resolve و در صورتی که موفقیت آمیز نباشد باید reject را با دیتایی که میخواهیم مقدار دهی کنیم .
استفاده از promise :
somePromise.then( resolveResult => { console.log(resolveResult); }).catch(rejectResult => { console.log(rejectResult); });
برای استفاده باید دو تابع then , catch را پیاده سازی کنیم، در صورتی که promise با resolve به پایان برسد تابع then و اگر با reject به پایان برسد تابع catch به طور خودکار فراخوانی می شود و دیتایی که promise برگردانده است در اختیار این دو تابع هنگام فراخوانی قرار می گیرد.
برای نوشتن اعداد مبنای 8 و 2 در ES5 باید به صورت زیر عمل میکردیم .
var value = parseInt("111110111", 2); //503 var value = parseInt("767", 8); //503;
حالا در ES6 میتونیم با پیشوند این کارو خیلی راحت تر انجام بدیم و لازم به تبدیل نیست :
let value = 0b111110111; // 503 let value = 0o767 ; //503
به پایان بخش دوم رسیدیم امیدوارم مفید بوده باشه.