گمان نمیکنم هیچ زبان برنامه نویسی پویایی جاوا اسکریپت را در بین زبانهای برنامه نویسی مختلف داشته باشد. جامعه کاربری بزرگ و فعال آن باعث شدهاند تا جاوا اسکریپت به صورت مداوم در حال بروزرسانی باشد و ویژگیهای جدیدی را عرضه کند.
این نکته مثبتی است چرا که توسعه دهندگان با هر تغییر جاوا اسکریپت میتوانند فرایند کدنویسی راحتتری داشته باشند. بیشتر این تغییرات و بروزرسانیها، میانبرهایی برای انجام کارهایی است که برنامه نویسان برای انجام دادن آنها بجای استفاده از یک کلمه کلیدی نیاز دارند تا یک سری دستورات را بنویسند.
به همین دلیل جاوا اسکریپت در حال تبدیل شدن به یک زبان برنامه نویسی مختصر است. پایتون نیز به همین عنوان شناخته میشود اما جاوا اسکریپت میزان تغییرات و بروزرسانیهای بسیار بیشتری حتی به نسبت پایتون داشته و به همین دلیل است که بنظر میرسد برنامه نویسان آن از نعمت بزرگی برخوردار شدهاند.
در این مقاله از وبسایت آموزشی راکت قصد داریم شما را با ۴ ویژگی جدید ES2022 آشنا کنیم که از عرضه آن چند ماهی میگذرد. هر کدام از این تغییرات مطمئنا میتوانند کمک بزرگی را به شما کرده و گوشهای از کارهایتان را بگیرند. بیایید با این گزینهها آشنا شویم.
ویژگی جدید اول: Await بدون استفاده از Async
برای استفاده کردن از خاصیت Await شما نیاز دارید که از یک بلوک کد یا تابع Async استفاده کنید. اما در ES2022 قابلیت جدیدی عرضه شده که شما میتوانید از Await بدون همراه داشتن Async استفاده کنید. این مورد در شرایطی که قصد دارید یک قطعه کد مشروط به یک چیز دیگر اجرا شود مورد استفاده قرار میگیرد. به مثال زیر توجه کنید:
if(user.preferences.mode === dark) {
await require("path to additional code to be imported")
}
ویژگی جدید دوم: متد جدید at برای آرایهها
با استفاده از متد جدید at شما این قابلیت را خواهید داشت که براساس ایندکس یک آرایه، به مقدار موجود در آن دسترسی پیدا کنید. متد at هم از ایندکس مثبت و هم از ایندکس منفی بهره میگیرد. به این صورت که اگر عدد مثبتی را در داخل آن قرار دهید با شروع از صفر، مقدار موجود در ایندکس مورد نظر را دریافت خواهید کرد. اگر هم عدد منفی را در آن قرار دهید با شروع از منفی یک به عنوان آخرین المان آرایه، مقدار موجود در ایندکس مورد نظر را دریافت میکنید.
در مثال زیر میتوانید به صورت عملی این موضوع را مشاهده کنید.
const arr = [1,2,3,4]
console.log(arr.at(2)); // 3 because positive indexining starts from 0 for first element of the array/string
console.log(arr.at(-2)); // 3 because negative indextion starts with -1 for the last element of the array/string
ویژگی جدید سوم: کلمه کلیدی cause برای مدیریت خطاها
برای مدیریت بهتر خطاها در یک بلوک try/catch یک کلمه کلیدی جدید ایجاد شده است که سطح بالا بودن زبان برنامه نویسی جاوا اسکریپت را حتی افزایش میدهد. با قرار دادن کلمه کلیدی cause در کنار متغیر error شما می توانید هم پیام معناداری را در سمت کاربر نشان داده و هم در فرایند کدنویسی، اصول Clean Code را بهتر رعایت کنید.
به مثال زیر توجه کنید:
try {
//something
} catch (error) {
throw new Error('Something went wrong', { cause: error });
}
ویژگی جدید چهارم: دو گزینه جدید در RegExp
Regexp.exec ویژگی جدیدی است که به شما اجازه میدهد تا چندین بخش از یک String را با همدیگر تطبیق دهید. در این حالت شما باید خروجیها را در یک حلقه قرار دهید تا زمانی که هر موردی به null میرسد. در مثال زیر که از وبسایت موزیلا گرفته شده است بهتر با کارکرد این موضوع آشنا خواهید شد.
const regex1 = RegExp('foo*', 'g');
const str1 = 'table football, foosball';
let array1;
while ((array1 = regex1.exec(str1)) !== null) {
console.log(`Found ${array1[0]}. Next starts at ${regex1.lastIndex}.`);
// expected output: "Found foo. Next starts at 9."
// expected output: "Found foo. Next starts at 19."
}
همچنین دستور String.matchAll یک iterator یا تکرار شونده را برمیگرداند که میتوان با استفاده از یک حلقه روی تمام مواردی که تطابق دارند کاوش کنید.
const regexp = /t(e)(st(\d?))/g;
const str = 'test1test2';
const array = [...str.matchAll(regexp)];
console.log(array[0]);
// expected output: Array ["test1", "e", "st1", "1"]
console.log(array[1]);
// expected output: Array ["test2", "e", "st2", "2"]
در پایان
همانطور که گفتم برنامه نویسان جاوا اسکریپت همواره از یکسری نعمات برخوردار هستند. یکی از این نعمات بروزرسانیهای زیادی است که برای این زبان برنامه نویسی ارائه شده و باعث میشود تا راحتتر بتوان با این زبان برنامه نویسی فرایند توسعه را پیش گرفت. در این مقاله ما ۴ ویژگی جدید اکما اسکریپت ۲۰۲۲ را بررسی کردیم.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید