سایت خبرکاو

جستجوگر هوشمند اخبار و مطالب فناوری

مقادیر نادرست در جاوا اسکریپت چیست؟ با مثال توضیح داده شده است

در جاوا اسکریپت، هر مقدار دارای یک معادل بولی است. این بدان معنی است که می توان آن را به عنوان درست (مقدار واقعی) یا نادرست (مقدار نادرست) در شرایط بولی ارزیابی کرد. اما زمینه بولی چیست؟ این وضعیتی است که در آن مقدار بولی مورد انتظار است. به عنوان مثال می توان به دستورات if، عملگرهای منطقی و غیره اشاره کرد. وقتی از ...

در جاوا اسکریپت، هر مقدار دارای یک معادل بولی است. این بدان معنی است که می توان آن را به عنوان درست (مقدار واقعی) یا نادرست (مقدار نادرست) در شرایط بولی ارزیابی کرد.

اما زمینه بولی چیست؟ این وضعیتی است که در آن مقدار بولی مورد انتظار است. به عنوان مثال می توان به دستورات 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))
اسکرین شات-2024-01-23-at-6.16.42-PM
نتایج لاگ بولی برای هر شش مقدار نادرست.

در اینجا، ما مقدار بولی هر شش مقدار نادرست را تحلیل می کنیم. و همانطور که پیش بینی می شود، هر کدام false برمی گرداند.

وقتی هر مقدار دیگری را که یکی از این شش مقدار نادرست نیست به تابع بولی ارسال می‌کنید، مقدار true برمی‌گرداند.

مثال:

 console.log(Boolean('hello')) console.log(Boolean(24))
اسکرین شات-2024-01-23-at-6.24.35-PM
نتایج لاگ بولی مثال برای مقادیر درستی.

ارزش های واقعی که ممکن است به عنوان ارزش های دروغین ظاهر شوند

برخی از ارزش‌های صدق وجود دارد که در یک نگاه، ممکن است ارزش‌های نادرستی به نظر برسند، اما اینطور نیستند. همانطور که قبلا ذکر شد، تنها شش مقدار در جاوا اسکریپت مقادیر نادرست هستند. هر چیز دیگری یک ارزش واقعی است.

موارد زیر برخی از آن مقادیری هستند که نادرست نیستند اما ممکن است به این صورت ظاهر شوند.

 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
اسکرین شات-2024-01-24-at-8.09.17-AM
نتایج را برای مقادیر درستی که به عنوان نادرست به نظر می رسند، ثبت کنید.

سه رشته اول حاوی متنی است که ممکن است شبیه مقادیر نادرست باشد. اول رشته ای با متن "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') } 
اسکرین شات-2024-01-28-at-11.31.28-PM
نتیجه ثبت برای مثال برابری دقیق.
 // Loose Equality Example if (1 == [1]) { console.log('EQUAL') } else { console.log('NOT EQUAL') }
اسکرین شات-2024-01-28-at-11.32.20-PM
نتیجه ثبت برای مثال برابری سست.

هر دو مثال بالا مقادیر یکسانی را با هم مقایسه می کنند. اما مثال برابری دقیق "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 من مشترک شوید .

خبرکاو