javascript 数値判定を行う

javascript 数値判定を行う

javascriptで、数値判定を行うサンプルコードを記述してます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 103.0.5060.134

数値判定を行う

「javascript」で「数値判定」を行うには、複数の方法がありますが「isFinite」を使用するのが、
一番良さそうに思えます。
※数値っぽいもので、BIGINT型だけが「false」に判定されます。

console.log(
  Number.isFinite(1) // true
);

console.log(
  Number.isFinite(0.01) // true
);

console.log(
  Number.isFinite(-1.11) // true
);

console.log(
  Number.isFinite(0xFF) // true
);

console.log(
  Number.isFinite(Number.MIN_VALUE) // true
);

console.log(
  Number.isFinite(Number.MAX_VALUE) // true
);

console.log(
  Number.isFinite(Number.MIN_SAFE_INTEGER) // true
);

console.log(
  Number.isFinite(Number.MAX_SAFE_INTEGER) // true
);

console.log(
  Number.isFinite(10n) // false
);

console.log(
  Number.isFinite('1') // false
);

console.log(
  Number.isFinite('-1.1') // false
);

console.log(
  Number.isFinite('01') // false
);

console.log(
  Number.isFinite('10') // false
);

console.log(
  Number.isFinite(true) // false
);

console.log(
  Number.isFinite(false) // false
);

console.log(
  Number.isFinite('a') // false
);

console.log(
  Number.isFinite([10]) // false
);

console.log(
  Number.isFinite({a:1}) // false
);

console.log(
  Number.isFinite(null) // false
);

console.log(
  Number.isFinite(undefined) // false
);

console.log(
  Number.isFinite(NaN) // false
);

console.log(
  Number.isFinite(Infinity) // false
);

BIGINT型も「true」と判定したい場合は、以下のような関数を作成して使用します。

function check(num) {

    if (typeof num !== 'bigint') {
        return Number.isFinite(num)
    }

    return true;

}

console.log(
    check(1) // true
);

console.log(
    check(0.01) // true
);

console.log(
    check(-1.11) // true
);

console.log(
    check(0xFF) // true
);

console.log(
    check(Number.MIN_VALUE) // true
);

console.log(
    check(Number.MAX_VALUE) // true
);

console.log(
    check(Number.MIN_SAFE_INTEGER) // true
);

console.log(
    check(Number.MAX_SAFE_INTEGER) // true
);

console.log(
    check(10n) // true
);

console.log(
    check('1') // false
);

console.log(
    check('-1.1') // false
);

console.log(
    check('01') // false
);

console.log(
    check('10') // false
);

console.log(
    check(true) // false
);

console.log(
    check(false) // false
);

console.log(
    check('a') // false
);

console.log(
    check([10]) // false
);

console.log(
    check({ a: 1 }) // false
);

console.log(
    check(null) // false
);

console.log(
    check(undefined) // false
);

console.log(
    check(NaN) // false
);

console.log(
    check(Infinity) // false
);