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 է։