ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptで整数の型を判定する最も簡単な実装方法
JavaScript が typeof 演算子を提供していることはわかっているので、typeof を使用して数値型かどうかを判断するのが最も簡単です。
次のようにコードをコピーします:
function isNumber(obj) { return typeof obj === 'number' }
この関数は整数と浮動小数点数については問題ありませんが、NaN 値に対しても true を返すので、結局、渡した後に NaN を使用する人はいないでしょう。 isNumber の判定。
次に、それを改善して、Object.prototype.toString を使用してみてください。
コピーコード code は以下の通りです:
function isNumber(obj) { return Object.prototype.toString.call(obj) === '[object Number]' }
今回は、入力が非数値(NaN または NaN に変換できる値)の場合は false を返します
コピーコード code は次のように:
function isNumber(obj) { return typeof obj === 'number' && !isNaN(obj) } isNumber(1) // true isNumber(1.2) // true isNumber(NaN) // false isNumber( parseInt('a') ) // false
まあ、これは isNumber で良いですが、同等のものがあります。
を判断するには isFinite を使用してください。
次のようにコードをコピーします:
function isNumber(obj) { return typeof obj === 'number' && isFinite(obj) }
これまで、数値を判断するための最短のコードは、 3 つ目は、この記事で説明されている isNaN 関数を使用するものです。世界最短のデジタル判定 Web コードはこちらです
次のようにコードをコピーします:
function isNumber(obj) { return obj === +obj }
整数と浮動小数点数の場合は true を返し、NaN または NaN に変換できる値の場合は false を返します。
わかりませんか? ぐ~~(╯﹏╰)
庭の友達は、これは世界で最も短い判定数値コードではなく、パラメータobjを1文字に変更できると言いました。 (⊙o⊙)その通りです。
同様に、JS 動的言語機能 (オペレーター操作中の自動内部型変換) を使用した同様の最短の判断があります。
次のようにコードをコピーします:
// 判断字符串 function isString(obj) { return obj === obj+'' } // 判断布尔类型 function isBoolean(obj) { return obj === !!obj }