۱۴ ژوئیه ۲۰۲۳

انشعاب شرطی: if، '?'

بعضی اوقات، ما نیاز داریم که کارهای مختلفی را بر اساس شرایط مختلف انجام دهیم.

برای انجام این کار، ما از دستور if و عملگر شرطی (سه‌تایی) که ما برای سادگی به عنوان عملگر «علامت سوال» ? به آن اشاره خواهیم کرد، استفاده می‌کنیم.

دستور “if”

دستور if(...) شرطی را در پرانتز ارزیابی می‌کند و اگر نتیجه آن true باشد، یک بلوک کد را اجرا می‌کند.

برای مثال:

let year = prompt('در چه سالی مشخصات ECMAScript-2015 منتشر شد؟', '');

if (year == 2015) alert( 'درست گفتید!' );

در مثال بالا، شرط یک بررسی برابری ساده است (year == 2015) اما می‌تواند خیلی پیچیده‌تر باشد.

اگر ما بخواهیم بیشتر از یک دستور را اجرا کنیم، باید کدمان را درون آکولاد قرار دهیم:

if (year == 2015) {
  alert( "درست است!" );
  alert( "شما باهوش هستید!" );
}

ما پیشنهاد می‌کنیم که کدتان را هر بار که از دستور if استفاده می‌کنید، درون آکولاد {} بگذارید حتی اگر تنها یک دستور برای اجرا کردن دارید. انجام دادن این کار خوانایی را افزایش می‌دهد.

تبدیل به بولین

دستور if (…) عبارت درون پرانتز را ارزیابی می‌کند و نتیجه را به بولین تبدیل می‌کند.

بیایید قوانین تبدیل را از فصل تبدیل نوع داده به یاد بیاوریم:

  • عدد 0، یک رشته خالی ""، null، undefined و NaN همگی به false تبدیل می‌شوند. به همین دلیل به آنها مقدارهای “falsy” می‌گویند.
  • مقدارهای دیگر به true تبدیل می‌شوند پس “truthy” نامیده می‌شوند.

پس کد زیر با این شرط هیچگاه اجرا نمی‌شود:

if (0) { // است falsy ،مقدار 0
  ...
}

…و درون با این شرط – همیشه اجرا می‌شود:

if (1) { // است truthy ،مقدار 1
  ...
}