عنوان مقاله :

بهبود بخشیدن به تو در تو نویسی شروط - نکات جاوا اسکریپت

گردآوری و تالیف : حسام موسوی
تاریخ انتشار : 08 شهریور 1395
دسته بندی ها : جاوا اسکریپت

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

به نظر شما چطور میتوانیم تو در تو نویسی شروط if در جاوا اسکریپت را بهبود ببخشیم ؟ به کد زیر دقت کنید . 

if (color) {
  if (color === 'black') {
    printBlackBackground();
  } else if (color === 'red') {
    printRedBackground();
  } else if (color === 'blue') {
    printBlueBackground();
  } else if (color === 'green') {
    printGreenBackground();
  } else {
    printYellowBackground();
  }
}

یکی از راه های بهبود تو در تو نویسی شروط if در جاوا اسکریپت استفاده از switch می باشد . هرچند که switch کد نویسی کوتاه تری دارد اما ما اون رو به شما پیشنهاد نمی کنیم چون اشکال زدایی در switch کمی دشوار است . 

switch(color) {
  case 'black':
    printBlackBackground();
    break;
  case 'red':
    printRedBackground();
    break;
  case 'blue':
    printBlueBackground();
    break;
  case 'green':
    printGreenBackground();
    break;
  default:
    printYellowBackground();
}

 اما اگر ما برای شروط خودمون چند شرط برای چک کردن داریم و اگر هم میخوایم کدهای کوتاه تری هم داشته باشیم خوب باید بجای if از switch استفاده کنیم . برای هر case هم باید مقداری true یا false بر گردونیم پس کد ما بصورت زیر میشه . 

switch(true) {
  case (typeof color === 'string' && color === 'black'):
    printBlackBackground();
    break;
  case (typeof color === 'string' && color === 'red'):
    printRedBackground();
    break;
  case (typeof color === 'string' && color === 'blue'):
    printBlueBackground();
    break;
  case (typeof color === 'string' && color === 'green'):
    printGreenBackground();
    break;
  case (typeof color === 'string' && color === 'yellow'):
    printYellowBackground();
    break;
}

 حالا اگر بخوایم داخل case ها را refactor کنیم ، ما می تونیم از تابع برای چک کردن و برگشت true یا false استفاده کنیم . در این مثال برای چک کردن رنگ میتونیم از تابع زیر استفاده کنیم . 

function printBackground(color) {
  if (!color || typeof color !== 'string') {
    return; // Invalid color, return immediately
  }
}

اما اگر refactor کردن یکی از گزینه های ما نیست ، ما نباید به این صورت در switch شروط خودمون رو قرار بدیم در این مثال بهترین کار استفاده کردن از شی ها برای اعمال این تو در تو نویسی است به کد زیر دقت کنید . 

var colorObj = {
  'black': printBlackBackground,
  'red': printRedBackground,
  'blue': printBlueBackground,
  'green': printGreenBackground,
  'yellow': printYellowBackground
};

if (color in colorObj) {
  colorObj[color]();
}

امیدوارم با استفاده از این نکات فهمیده باشید که چطور میشه تو در تو نویسی در شروط جاوا اسکریپت رو بهبود ببخشید.

مقالات پیشنهادی

۱۰ ابزار جالب css و javascript برای فرم ها

فرم ها یکی از بخش های جدایی ناپذیر وبسایت ها هستند و هر روزه ابزارهای مختلفی برای بهبود کار با فرم ها ارائه میشود . در این مقاله ۱۰ تا از ابزارهای جال...

سه هک مفید جاوا اسکریپت

در این پست قصد دارم سه هک مفید جاوا اسکریپت رو به شما آموزش بدم . البته بگم منظور و مفهوم از هک در اینجا راه هایه که شاید همه با اون آشنا نباشن . برای...

دسترسی به کلیپ بورد با جاوا اسکریپت

ویژگی شگفت انگیزی که شما میتوانید به وبسایت خود اضافه کنید ، کپی کردن یک رشته با عمل کلیک بر روی یک Button است . این تعامل میتواند در کپی کردن Url ها...

ساخت انیمیشن gradient با granim.js

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

دیدگاه های ارزشمند شما

وحید منتظر | 6 ماه پیش

مطلب آموزنده و خیلی خوبی بود.
من همین یه قسمت از کدی که در Laravel نوشته بودم رو با این روش Refactor کردم.