مقادیر نادرست در جاوا اسکریپت چیست؟ با مثال توضیح داده شده است
در جاوا اسکریپت، هر مقدار دارای یک معادل بولی است. این بدان معنی است که می توان آن را به عنوان درست (مقدار واقعی) یا نادرست (مقدار نادرست) در شرایط بولی ارزیابی کرد.
اما زمینه بولی چیست؟ این وضعیتی است که در آن مقدار بولی مورد انتظار است. به عنوان مثال می توان به دستورات if، عملگرهای منطقی و غیره اشاره کرد. وقتی از یک مقدار غیر بولی در زمینه بولی استفاده می کنید، جاوا اسکریپت مقدار را به معادل بولی خود تبدیل می کند.
در این مقاله با مقادیر نادرست در جاوا اسکریپت و نحوه تحلیل نادرست بودن یک مقدار آشنا خواهید شد. این مقاله همچنین برخی از بهترین روشها را پوشش میدهد که باید هنگام تحلیل معادل بولی یک مقدار در نظر گرفته شوند.
بیا شروع کنیم!
فهرست مطالب
شش مقدار نادرست در جاوا اسکریپت
چگونه تحلیل کنیم که آیا یک مقدار نادرست است
ارزش های واقعی که ممکن است به عنوان ارزش های دروغین ظاهر شوند
بهترین روش ها هنگام تحلیل معادل بولی
شش مقدار نادرست در جاوا اسکریپت
مقادیر نادرست در جاوا اسکریپت منحصر به فرد هستند زیرا تنها شش عدد از آنها وجود دارد. به غیر از این شش، همه ارزش های دیگر ارزش های صدق هستند.
شما می توانید این مقادیر نادرست را به حافظه وارد کنید. به این ترتیب، وقتی به ارزشی برخورد میکنید که یکی از آن شش عدد نیست، میدانید که یک ارزش truthy
است.
در اینجا شش مقدار نادرست در جاوا اسکریپت آمده است:
false
: مقدار بولی false
.
0
: عدد صفر
""
یا ''
یا ``
: یک رشته خالی.
null
: کلمه کلیدی null که نشان دهنده عدم وجود هر مقدار شی است.
undefined
: کلمه کلیدی تعریف نشده که یک مقدار اولیه را نشان می دهد.
NaN
: مخفف "Not a Number" است. این مقدار خاصی را نشان می دهد که از یک عملیات بازگردانده شده است که باید یک مقدار عددی را برگرداند اما این کار را نمی کند.
حال، بیایید چند نمونه عملی از این مقادیر نادرست را در جاوا اسکریپت ببینیم.
مثال 1 - مقدار بولی false
.
let isOnline = false function checkStatus(status) { return Boolean(status) ? "ONLINE" : "OFFLINE" } checkStatus(isOnline) // "OFFLINE"
وقتی متغیر isOnline
را به تابع checkStatus
میدهید، رشته "OFFLINE"
را برمیگرداند. و این به این دلیل است که مقدار در این زمینه false
است. در اینجا، ما از یک عملگر tenary بر اساس مقدار بولی آرگومان status
استفاده می کنیم.
مثال 2 - عدد صفر.
let unreadMessages = 0 let hasUnreadMessages = Boolean(unreadMessages) console.log(hasUnreadMessages) // false
این مثال تحلیل می کند که آیا کاربر پیام های خوانده نشده دارد یا خیر. ما از تابع Boolean
ساخته شده برای بدست آوردن مقدار بولی متغیر unreadMessages
استفاده می کنیم. این بدان معناست که هر زمان که تعداد unreadMessages
صفر باشد، hasUnreadMessages
false
خواهد بود.
مثال 3 - یک رشته خالی.
let userInput = ""; let defaultText = "No input provided"; let displayText = Boolean(userInput) || defaultText; console.log(displayText); // No input provided
این مثال از عملگر منطقی OR ||
استفاده می کند برای تعیین مقدار displayText
. اگر مقداری واقعی باشد، مقدار userInput
را به displayText
اختصاص میدهد. یا اگر userInput
یک مقدار نادرست باشد، همانطور که در این مورد وجود دارد، defaultText
را به displayText
اختصاص می دهد.
مثال 4 - null
let user = null; if (user && user.name) { console.log("Welcome, " + user.name + "!"); } else { console.log("Please log in to access the website."); }
مثال زیر فرض می کند که user
وارد نشده است و پس مقدار شی user
null
است. این به این معنی است که عبارت if
به false
ارزیابی می شود. رفتار مورد انتظار این خواهد بود که کد بلوک else
را اجرا کند.
مثال 5 - undefined
let age; if (age === undefined) { console.log("The age is undefined."); }
زمانی که متغیری اعلان می شود اما با مقداری مقدار دهی اولیه نمی شود، جاوا اسکریپت مقداری را که به طور پیش فرض undefined
به آن اختصاص می دهد. در مثال کد بالا، از آنجایی که متغیر age
اعلام شده است اما مقداری به آن اختصاص داده نشده است، مقدار آن undefined
است. این بدان معناست که کد موجود در دستور if
اجرا خواهد شد.
مثال 6 - NaN
let value1 = "Ten" let value2 = 10 let result = value1 / value2 if (isNaN(result)) { console.log("The result is not a number."); } else { console.log(result); }
این مثال value1
(رشته) را بر value2
(عدد) تقسیم می کند. این به یک مقدار NaN
منجر می شود زیرا نمی توانید یک رشته را بر یک عدد تقسیم کنید. این بدان معناست که کد موجود در بلوک if
اجرا خواهد شد. و ورود به سیستم The result is not a number
.
چگونه تحلیل کنیم که آیا یک مقدار در جاوا اسکریپت نادرست است یا خیر
یک راه مطمئن برای تحلیل نادرست بودن یا نبودن یک مقدار، استفاده از تابع Boolean
است. تابع Boolean
مقدار بولی مقدار آرگومان ارسال شده به آن را برمی گرداند.
مثال:
console.log(Boolean(false)) console.log(Boolean(0)) console.log(Boolean("")) console.log(Boolean(null)) console.log(Boolean(undefined)) console.log(Boolean(NaN))
در اینجا، ما مقدار بولی هر شش مقدار نادرست را تحلیل می کنیم. و همانطور که پیش بینی می شود، هر کدام false
برمی گرداند.
وقتی هر مقدار دیگری را که یکی از این شش مقدار نادرست نیست به تابع بولی ارسال میکنید، مقدار true
برمیگرداند.
مثال:
console.log(Boolean('hello')) console.log(Boolean(24))
ارزش های واقعی که ممکن است به عنوان ارزش های دروغین ظاهر شوند
برخی از ارزشهای صدق وجود دارد که در یک نگاه، ممکن است ارزشهای نادرستی به نظر برسند، اما اینطور نیستند. همانطور که قبلا ذکر شد، تنها شش مقدار در جاوا اسکریپت مقادیر نادرست هستند. هر چیز دیگری یک ارزش واقعی است.
موارد زیر برخی از آن مقادیری هستند که نادرست نیستند اما ممکن است به این صورت ظاهر شوند.
console.log(Boolean('false')) // An empty object console.log(Boolean(' ')) // An empty object console.log(Boolean('0')) // An empty object console.log(Boolean([])) // An empty array console.log(Boolean({})) // An empty object
سه رشته اول حاوی متنی است که ممکن است شبیه مقادیر نادرست باشد. اول رشته ای با متن "false"
، یکی دیگر با مقداری فضای خالی و سومی با صفر است.
به یاد داشته باشید که تنها رشته ای که به عنوان مقدار نادرست در نظر گرفته می شود، یک رشته خالی است. تمام رشتههای غیر خالی در جاوا اسکریپت مقادیر درستی هستند که فقط رشتههایی با فاصله خالی هستند.
همچنین، توجه داشته باشید که بر خلاف رشته ها، هم یک آرایه خالی و هم یک شی خالی در یک زمینه بولی true
برمی گردند.
بهترین روش ها هنگام تحلیل معادل بولی
نکات زیر به خوانایی بیشتر کد شما و نگهداری آسان تر کمک می کند.
1. از تابع Boolean استفاده کنید
زمانی که میخواهید درستی یا نادرستی یک مقدار را تحلیل کنید، همیشه بهتر است از تابع Boolean
داخلی استفاده کنید. تابع با وادار کردن هر مقدار به بولی مربوطه کار می کند. همچنین قصد شما را برای هر کسی که کد را می خواند روشن می کند.
مثال:
// Example without the Boolean function const value = ''; if (value) { console.log('It is a TRUTHY value'); } else { console.log('It is a FALSY value'); } // Example with the Boolean function const value = '' if (Boolean(value)) { console.log('It is a TRUTHY value'); } else { console.log('It is a FALSY value'); }
هر دو نمونه یک کار را انجام می دهند. اما در مثال دوم، واضح است که شما نمایش بولی مقدار داده شده را تحلیل می کنید.
2. به جای برابری آزاد ===
از برابری دقیق ==
استفاده کنید
هنگامی که مقادیر را برای درستی یا نادرستی مقایسه میکنید، توصیه میشود از برابری دقیق ( ===
) به جای برابری ضعیف ( ==
) استفاده کنید. برابری دقیق هم مقدار و هم نوع را با هم مقایسه می کند. برابری سست قبل از مقایسه مقادیر، اجبار نوع را انجام می دهد و این می تواند منجر به نتایج غیرمنتظره شود.
مثال:
// Strict Equality Example if (1 === [1]) { console.log('EQUAL') } else { console.log('NOT EQUAL') }
// Loose Equality Example if (1 == [1]) { console.log('EQUAL') } else { console.log('NOT EQUAL') }
هر دو مثال بالا مقادیر یکسانی را با هم مقایسه می کنند. اما مثال برابری دقیق "NOT EQUAL" را ثبت می کند. این به این دلیل است که عدد 1 با یک آرایه حاوی عدد 1 برابر نیست. با برابری شل، نوع مقادیر را مجبور می کند تا آنها را از یک نوع بسازد. به همین دلیل است که "EQUAL" را به کنسول وارد می کند.
3. برای مستند کردن کد خود نظراتی را اضافه کنید
برای اینکه کد خود را خواناتر و نگهداری آسانتر کنید، در صورت لزوم نظراتی را اضافه کنید تا منطق خود را هنگام برخورد با مقادیر درست و نادرست توضیح دهید.
مستندسازی کد شما تمرین خوبی برای کمک به توسعه دهندگان تیم شما (یا خود آینده شما) است که رفتار مورد نظر یک قطعه کد را درک کنند.
مثال:
let selectedUser = USER_OBJ // Check if no user is selected if (!selectedUser) { console.log("Please select a user."); } else { console.log("User address: " + selectedUser.address); }
در مثال بالا، نظر اضافه شده قبل از دستور if
به وضوح نشان می دهد که کد در حال تحلیل است که آیا هیچ کاربری انتخاب نشده است.
استفاده از عملگر منطقی NOT ( !
) می تواند به نظر برسد که شما در حال تحلیل انتخاب کاربر هستید نه اینکه تحلیل کنید که کاربر انتخاب نشده باشد. پس یک نظر در نمونه ای مانند به ارائه وضوح کمک می کند.
نتیجه
در این مقاله با شش مقدار نادرست در جاوا اسکریپت و تفاوت آنها با مقادیر true آشنا شده اید. شما همچنین در مورد برخی از ارزش های صدق که ممکن است نادرست به نظر برسند، اما در واقع اینطور نیستند، یاد گرفتید. و همچنین برخی از بهترین روشها را در هنگام کار با مقادیر نادرست مشاهده کردید.
درک خوب مفهوم مقادیر نادرست و درست و نحوه تأثیر آنها بر مقایسه ها و بیانیه شرطی هنگام اشکال زدایی برنامه های جاوا اسکریپت مفید خواهد بود.
با تشکر برای خواندن. و کد نویسی مبارک! برای آموزش های عمیق تر، در صورت تمایل در کانال YouTube من مشترک شوید .
ارسال نظر