JS内蔵関数,isNaN


isNaN()


受信パラメータ値がNANまたは非数値である関数の決定

return


isNaN()の値が数値でない場合はtrue、数値である場合はfalseを返します.

isNaN(NaN);       // true
isNaN(undefined); // true
isNaN({});        // true

isNaN(true);      // false
isNaN(null);      // false
isNaN(37);        // false

// 문자열
isNaN("37");      // false

予期せぬ結果


例ではnullおよび「37」は予想外の結果をもたらす.
isNan()はtrueを返さなければならないが、両方ともfalse、すなわちnumberを表示する.
typeofで資料のタイプを知る
typeof null // object
typeof "37" // string
typeofの結果からnullはobject,「37」はstringである.
つまりnumberではないのでtrueだけが出てくるのが普通です.
どうしたんですか.

n/a.理由


これはisnan()の動作方式のためです.
nullと「37」を数値として明示的に変換
Number(null) // 0
Number("37") // 37

typeof Number(null) // number
typeof Number("37") // number
数字()で数字に変化し、typeofでタイプを確認すると両方とも数字が出てきます.
すなわちisnan()は,まず受信した値を数字に変換し,次に数字であるか否かを判別する.

の最後の部分


isNan()は,受け取った値(引数)をnumberに変換したことを知り,判別する.したがって,ISNAN()よりも直接typeofでタイプを確認した方が正確である可能性がある.