برنامه نویسی

چرا NAN === NAN در JavaScript نادرست باز می گردد؟

در JavaScript ، NAN === NAN به False ارزیابی می کند ، که ممکن است در ابتدا عجیب به نظر برسد. برای درک این رفتار ، ما باید آنچه را که نان نشان می دهد و چرا اینگونه رفتار می کند ، کشف کنیم.

نان چیست؟
NAN مخفف “Not-A-Number” است و برای نشان دادن نتیجه عملیات عددی نامعتبر یا نامشخص استفاده می شود. به عنوان مثال:

console.log(0 / 0);       // NaN
console.log(Math.sqrt(-1)); // NaN

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

چرا در بازگشت کاذب در === انجام می شود؟

مطابق استاندارد IEEE 754 شناور استاندارد ، NAN با هر چیزی ، از جمله خود ، برابر نیست. این تضمین می کند که نتایج نامعتبر به اشتباه به عنوان معتبر رفتار نمی شود. به عبارت ساده ، نان خطایی را نشان می دهد ، و JavaScript آن را برای هر چیزی غیرقابل مقایسه می کند.

نحوه بررسی NAN
از آنجا که مقایسه مستقیم کار نمی کند ، از این روش ها برای بررسی NAN استفاده کنید:

  • جهانی ISNAN () – بررسی می کند که آیا یک مقدار NAN است یا می تواند به آن تبدیل شود:

console.log(isNaN("abc"));    // true
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • number.isnan () – به طور خاص برای NAN بدون تبدیل بررسی می کند:

console.log(Number.isNaN(NaN)); // true
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پایان
NAN === NAN نادرست را برمی گرداند زیرا NAN خطایی را نشان می دهد ، نه یک عدد معتبر. برای بررسی NAN ، برای جلوگیری از سردرگمی و اشکالات ، از isnan () یا number.isnan () استفاده کنید.

منبع

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا