ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptで整数の型を判定する最も簡単な実装方法

JavaScriptで整数の型を判定する最も簡単な実装方法

高洛峰
高洛峰オリジナル
2016-11-02 10:23:571034ブラウズ

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
}


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:AngularJ の範囲次の記事:AngularJ の範囲