Sobes.tech
Junior

Чӣ тавр санҷидани, ки оё рақам NaN аст?

sobes.tech AI

Ҷавоб аз AI

Функсияи isNaN() истифода мешавад, ки санҷиш мекунад, ки арзиш "Номи рақам" (Not-a-Number) аст.

// Мисолҳои истифодаи isNaN()
console.log(isNaN(NaN));      // true
console.log(isNaN(123));      // false
console.log(isNaN('hello'));  // true, зеро 'hello' наметавонад ба рақам табдил ёбад
console.log(isNaN('123'));    // false, зеро '123' метавонад ба рақами 123 табдил ёбад
console.log(isNaN(undefined)); // true
console.log(isNaN(null));      // false, зеро null ба 0 табдил ёфтааст

// Санҷиши табдил додани намуд
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true

Ҳамчунин, усули Number.isNaN() мавҷуд аст, ки ба таври қатъӣ санҷиш мекунад, ки арзиш дар асл NaN аст, бе табдил додани пешакӣ.

// Мисолҳои истифодаи `Number.isNaN()`
console.log(Number.isNaN(NaN));      // true
console.log(Number.isNaN(123));      // false
console.log(Number.isNaN('hello'));  // false, намеғзорад
console.log(Number.isNaN('123'));    // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null));      // false

Меъёри NaN бо худ ё бо ҳар арзиши дигар ҳамеша false бармегардонад, ба истиснои истифодаи Object.is().

// Хусусияти муқоиса бо NaN
console.log(NaN == NaN);  // false
console.log(NaN === NaN); // false

// Муқоиса бо истифодаи Object.is()
console.log(Object.is(NaN, NaN)); // true

Ба вобаста ба вазифа, мумкин аст, ки зарур бошад, ки isNaN() (агар санҷиш пас аз табдил додани ба рақам муҳим бошад) ё Number.isNaN() (барои санҷиши дақиқи NaN) истифода шавад. Метод Number.isNaN() барои санҷиши дақиқи он, ки оё арзиш дар асл NaN аст, беҳтар аст.