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' санга айландырылат
console.log(isNaN(undefined)); // true
console.log(isNaN(null));      // false, анткени null 0го айланат

// isNaN() типти текшерүү
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

// isNaN() менен салыштыруу
console.log(isNaN('hello'));      // true
console.log(Number.isNaN('hello')); // 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() (катуу текшерүү үчүн) керек болсо, тандоо керек. Number.isNaN() так жана ишенимдүү, конкреттүү маанинин NaN экенин текшерүүдө артыкчылыкка ээ.