بعضی اوقات، ما نیاز داریم که کارهای مختلفی را بر اساس شرایط مختلف انجام دهیم.
برای انجام این کار، ما از دستور 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
...
}