چرا 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 () استفاده کنید.
منبع