چگونه عبارات if خود را ساده کنیم

شرطهای تودرتو میتوانند خواندن و تغییر کد شما را سختتر کنند، بهویژه اگر آنها را بیش از یک سطح تودرتو کنید.
در زیر، نمونه ای از تابعی را نشان خواهم داد که برای کاربر ارائه شده تخفیف برمی گرداند.
- باید 20 درصد تخفیف برای همه کاربران عادی بدهد.
- اما اگر کاربر عضویت ممتاز داشته باشد 40 درصد تخفیف می دهد.
- کاربران طلا بیشترین تخفیف را دارند: 60%.
- اگر کاربر ممنوع است، اما نباید هیچ تخفیفی بدهد.
بدون بند محافظ، این تابع را به صورت زیر می نویسم:
function getDiscountForUser(user) {
let result
if (user.isBanned) {
result = 0
} else {
if (user.isPremium) {
result = 40
} else {
if (user.isGold) {
result = 60
} else {
result = 20
}
}
}
return result
}
من در زیر به شما نشان خواهم داد که چگونه بندهای محافظ می توانند آن را بسیار ساده تر کنند. اما ابتدا، بند های نگهبانی چیست؟
بندهای نگهبانی چیست؟
بندهای محافظ چک هایی هستند که در ابتدای یک تابع برای بررسی شرایط غیرعادی قرار می دهید.
یک وضعیت معمولی (یا عادی نامیده می شود) شرایطی است که بیشتر موارد را برای رفتار مورد نیاز نشان می دهد – در این مورد، کاربران عادی 20٪ تخفیف دریافت می کنند. هر چیزی غیر از این حالت غیرعادی نامیده می شود.
بندهای محافظ نیز در صورت درست بودن فوراً برمیگردند – از اجرای سایر شرایط جلوگیری میکند.
در اینجا همان تابع به نظر می رسد اما با بندهای محافظ:
function getDiscountForUser(user) {
if (user.isBanned) return 0
if (user.isPremium) return 40
if (user.isGold) return 60
return 20
}
با زیبایی بند های محافظ، خواندن و تغییر عملکرد بسیار آسان تر شد.
اگر این مقاله را دوست داشتید، تمام مقالات دیگر من در Coddip را بررسی کنید—این مکانی برای ارتقاء کیفیت کد جاوا اسکریپت شماست.