ساده سازی بیانیه های شرطی در جاوااسکریپت JavaScript

یکی از قدرتمند ترین ابزارهایی که در تمام زبان های برنامه نویسی وجود داره ، اجرای کد به صورت شرطیه یعنی شما یک سری خط کد مینویسین که اگر شرطی درست بود اون کد ها اجرا میشوند. در جاوااسکریپت هم مانند زبان های دیگر این قابلیت وجود داره. در جاوااسکریپت سه نوع شرط داریم :if/elseswitch statementsconditional expressionsکه این شرط ها بهتون کمک میکنند کدهای خیلی جذابی بنویسید. همینطور که این شرط ها کمکتون میکنند کدهای خیلی جذابی بنویسید اگر شرط های اشتباهی به کار ببرین باعث پیچیدگی کدهاتون میشه و حتی اگر برنامه نویس های بعد شما هم بخوان با اون کدها کار کنند دچار مشکل میشند پس با رعایت برخی اصول میتونید این شرطها رو به نفع خودتون استفاده کنید.مبانی شرط هاهمانطور که قبلاً نیز گفتم ، JavaScript دارای 3 نوع اصلی شرط بندی است. اولین بلاک if / other است. ابتدای عبارت if بسیار ساده است: اگر شرط صحیح باشد ، بلاک کد اجرا می شود. مثلا:if (condition){ // اگر شرط درست باشه خط کد اینجا اجرا میشه }بلوک if همچنین می توانند بر اساس همان شرط با اضافه کردن کلمه کلیدی دیگر ، دو بلوک کد ایجاد کنند ، مانند این:if (condition){ // اگر شرط درست باشه خط کد اینجا اجرا میشه } else { // اگر شرط درست نباشه خط کد اینجا اجرا میشه }همچنین می توانید با استفاده از موارد دیگر شرایط بیشتری اضافه کنید if else است:if (condition){ // اگر شرط درست باشه خط کد اینجا اجرا میشه } else if(condition2) { // اگر شرط قبلی درست نباشه و این شرط درست باشه خط کد اینجا اجرا میشه } else { // اگر هیچکدوم از شرط ها درست نباشه خط کد اینجا اجرا میشه }عبارات سوئیچ از طرف دیگر مقدار یک یا چند مورد را در برابر یک عبارت بررسی می کنند. اگر هیچ یک از موارد با هم مطابقت نداشته باشند ، کد حالت default اجرا میشود مثل اینجا:switch(expression){ case value1: { //اگر مقداری که داخل پرانتز بالا هستش با این مقداری برابر باشه خط کد اینجا اجرا میشه break; } case value2: { //اگر مقداری که داخل پرانتز بالا هستش با این مقداری برابر باشه خط کد اینجا اجرا میشه break; } default: { //اگر مقداری که داخل پرانتز بالا هستش با هیچکدوم برابر نباشه حالت پیش فرض اینجا اجرا میشه break; } }نکته ای که اینجا وجود دارد این هستش که اگر بعد از هر شرط break و یا return نزارید همه کد ها از بالا به پایین اجرا میشوند مانند اینجا :const name = &quotاصغر&quot switch(name){ case &quotاکبر&quot: { //چون اسم تعریف شده ما در بالا اصغر هستش اینجا اجرا نمیشه } case &quotاصغر&quot: { // تمام کدهای اینجا و کیس های بعدی از اینجا به بعد اجرا میشه } case &quotحسین&quot: { ... } default: { ... } }و اما در نهایت اصطلاحات شرطی هستند چرا میگوییم اصلاحات شرطی چون بر خلاف if/else و یا switch statements یک عبارت را با یک مقدار ارزیابی می کند و می تواند در هر جایی از یک مقدار استفاده شود یا اختصاص یابد. که اینجوری تعریف میشوند :const myValue = condition ? valueIfTrue : valueIfFalse; // اینجا متغیر ما اون مقداری رو میگیره که علامت سوال بعد از شرط درست باشهو حتی اینجوری هم میشود تعریفشون کرد :const myVal = condition ? valTrue : condition2 ? valTrue2 : valFalse // اینجوری خیلی پیشنهاد نمیشهنحوه دیگر تعریف کردنشون به این صورت هستند که از منطق های جاوااسکریپت مثل && و یا || در اصطلاحات شرطی استفاده میشود مانند :const myVal = falsyVal || truthyVal || otherVal //truthyValconst myVal = truthyVal && falsyVal && otherVal //falsyValدر تعداد شرط های که استفاده میکنید محدودیتی وجود ندارد.بهترین تمرین هاحالا که با شرط های جاوااسکریپت آشنا شدیم این شرط ها هم میتونند خیلی کمک کنند به راحتی کد و هم میتونند خیلی گیج کننده باشند. حالا چندتا تمرین با هم مرور میکنیم که از پیچیدگی کدهامون جلوگیری بشه از بلوک if/else برای قرار دادن مقادیر داخل متغیر استفاده نکنید چرا اینکارو میکنید؟let myVal; if(condition){ myVal = valueIfTrue; } else { myVal = valueIfFalse; }وقتی میتونید اینجوری بنویسید :const myVal = condition ? valueIfTrue : valueIfFalse;از به کار بردن if/else های اضافی تا میتونید جلوگیری کنید مثلا شما دارید این خط کد رو مینویسید :let result; if (condition){ // calculate result_v1 } else if(condition2) { // calculate result_v2 } else { // default calculation } return result;ولی در واقع منطق شما اینجوریه: let result; if (condition){ // calculate result_v1 } else { if(condition2) { // calculate result_v2 } else { // default calculation } } return result;وقتی شما if/else های اضافی به کار میبرید بهتره که منطقتون رو به این شکل تغییر بدین تا از پیچدگی کدهاتون کم بشه :if (condition){ // return calculated result_v1 } if(condition2) { // return calculated result_v2 } // return default calculationهمانطور که مشاهده میکنید منطق سه تا کدهای قبلی شبیه همند اما آخری خیلی راحت تره خوندنش.و حتی برای راحتی بیشتر میتونیم از switch statement استفاده کنیم.دوستان عزیز این اولین باری بود که سعی کردم داخل ویرگول بنویسیم خیلی جالب و هیجانی بود و اگر جای املای غلط به کار بردم و یا سعی کردم خیلی خودمانی بنویسم به بزرگی خودتون ببخشید مرسی .