نگاهی عمیق تر به مقادیر Boolean در جاوا اسکریپت

0 64

امروز قصد داریم در رابطه با مقادیر منطقی بولین (Boolean) صحبت کنیم؛ قبل از بحث این جلسه در جلسات قبل اشاره های کوچکی به ساختار کلی boolean ها کرده بودیم اما در این قسمت قصد داریم به جزئیات و نکات ریز آن بپردازیم. ما در بسیاری از اوقات نیاز به نوعی از داده داریم که تنها بتواند دو حالت داشته باشد. مثل:

  • بله یا خیر
  • روشن یا خاموش
  • صحیح یا غلط

پاسخ جاوا اسکریپت به این نیاز، داده های Boolean هستند که تنها می توانند مقادیر true یا false را قبول کنند.

تابع ()Boolean

شما می توانید از تابع ()Boolean برای تشخیص صحیح یا غلط بودن یک عبارت (و یا یک متغیر) استفاده کنید:

از آن جایی که عدد 10 بزرگتر از 9 است بنابراین خروجی کد ما true خواهد بود. حتی می توانید در کد بالا پرانتز ها را به شکل زیر حذف کنید:

نتیجه باز هم true خواهد بود.

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

هر چیزی که دارای مقداری باشد true خواهد بود

خروجی کد به ترتیب زیر خواهد بود:

100 is true (معنی: 100 صحیح است)
3.14 is true (معنی: 3.14 صحیح است)
-15 is true (معنی: -15 صحیح است)
Any (not empty) string is true (معنی: هر رشته ای که خالی نباشد صحیح است)
Even the string ‘false’ is true (صحیح است ‘false’ معنی: حتی رشته ی)
Any expression (except zero) is true  (معنی: هر عبارتی به غیر از صفر صحیح است)

هر چیزی که مقداری نداشته باشد false خواهد بود

مقدار boolean عدد 0 همیشه false است:

خروجی false خواهد بود.

همچنین خروجی عدد 0- نیز false خواهد بود:

خروجی “” (رشته ی خالی) نیز false خواهد بود:

خروجی undefined نیز false خواهد بود:

خروجی null نیز برابر false است:

همچنین واضح است که خروجی false نیز برابر با خود false است:

خروجی مقدار NaN نیز false خواهد بود:

در این مثال برای ایجاد NaN از تقسیم یک عدد روی یک حرف استفاده کردیم که باعث تولید خطای NaN (مخفف Not a Number – به معنی “عدد نیست”) می شود.

boolean ها می توانند شیء باشند

خروجی این کد به شرح زیر است:

boolean
object

نکته: هیچ گاه boolean ها را به شکل شیء نسازید. این کار علاوه بر کاهش سرعت کد، باعث پیچیدگی آن نیز شده و می تواند باعث بروز خطا در سیستم شما شود. به طور مثال استفاده از اپراتور == برای مقایسه ی دو boolean مشکلی ایجاد نمی کند اما اگر از === استفاده کنیم به مشکل برخواهیم خورد چرا که نوع یک boolean ساده از نوع داده های ابتدایی و primitive است اما boolean هایی که با دستور new ساخته شوند از نوع اشیاء خواهند بود. همچنین بدتر اینکه اشیاء را نمی توان با هم مقایسه کرد:

بر خلاف انتظار شما و در کمال تعجب، خروجی کد بالا false خواهد بود. بنابراین به یاد داشته باشید که جواب مقایسه ی دو شیء جاوا اسکریپت همیشه false خواهد بود.

ما در آینده و در پروژه های عملی استفاده ی زیادی از boolean ها خواهیم داشت و خواهید فهمید که این نوع داده ها جزئی جدایی ناپذیر از جاوا اسکریپت و پروژه های عملی آن هستند. به هر حال امیدوارم از این قسمت لذت و استفاده ی کافی را برده باشید.

ترتیبی که روکسو برای یادگیری مطالب سری آموزش جاوا اسکریپت | Javascript به شما توصیه می‌کند:

ارسال نظر

توجه:‌ آدرس ایمیل شما منتشر نخواهد شد.