JavaScriptのisFinite関数の使い方について書いています。
最初にisFinite関数の使い方について解説しています。
その後に、いろいろな値を渡して、動作を確認してみました。
isFinite関数の使い方
isFinite関数を使うと、渡された値が有限数かどうかを判定することができます。
例えば、下記のように使います。
const result1 = isFinite(100)
console.log(result1) // true
const result2 = isFinite('77')
console.log(result2) // true
const result3 = isFinite('test123')
console.log(result3) // false
最初にisFinite関数に「100」を渡して、結果をresult1変数で受け取っています。
有限な数値なので、「true」が返ってきます。
次に文字列の「'77'」を渡していますが、数値としてみてくれるため、ここでも「true」が返ってきます。
最後に文字列の「test123」を渡しています。
これは数値ではないため、「false」が返ってきます。
引数と戻り値のまとめ
isFinite関数の引数と戻り値をまとめました。
引数
引数には有限数か確認したい値を渡します。
戻り値
有限な数値だったときには、trueが返ってきます。
数値ではない文字列や、無限のInfinity・-Infinity、未定義のundefinedのときにはfalseになります。
isFinite関数のテストパターン9選
いろいろな値を渡して試してみました。
数値ではない文字列
数値ではない文字列を渡すと、falseになります。
const result = isFinite('hello')
console.log(result) // false
数値の文字列
数値の文字列を渡すと、trueになります。
const result = isFinite('888')
console.log(result) // true
数値
有限な数値のときは、trueになります。
小数や負の数、2進数・8進数・16進数もtrueです。
let result = isFinite(99)
console.log(result) // true
result = isFinite(3.14) // 小数
console.log(result) // true
result = isFinite(-100) // 負の数
console.log(result) // true
result = isFinite(0b1010) // 2進数
console.log(result) // true
result = isFinite(0o333) // 8進数
console.log(result) // true
result = isFinite(0xf8) // 16進数
console.log(result) // true
論理値
論理値は、trueを渡してもfalseを渡しても、trueが返ってきます。
let result = isFinite(true)
console.log(result) // true
result = isFinite(false)
console.log(result) // true
空文字
空文字を渡したときには、trueになります。
const result = isFinite('')
console.log(result) // true
Infinity
Infinityを渡したときには、falseになります。
const result = isFinite(Infinity)
console.log(result) // false
-Infinity
-Infinityを渡したときにも、falseになります。
// -Infinity
const result = isFinite(-Infinity)
console.log(result) // false
undefined
undefinedを渡したときには、falseになります。
const result = isFinite(undefined)
console.log(result) // false
null
nullを渡したときには、trueになります。
const result = isFinite(null)
console.log(result) // true
isFinite関数のまとめ表
最後にisFinite関数で、trueやfalseになるパターンを表にまとめてみました。
| 渡す値 | 値の説明 | 返り値 |
|---|---|---|
| ‘hello’ | 文字列 | false |
| ‘888’ | 文字列(数値) | true |
| 99 | 数値 | true |
| 3.14 | 数値(小数) | true |
| -100 | 数値(負数) | true |
| 0b1010 | 数値(2進数) | true |
| 0o333 | 数値(8進数) | true |
| 0xf8 | 数値(16進数) | true |
| true | 論理値 | true |
| false | 論理値 | true |
| ” | 空文字 | true |
| Infinity | 正の無限大 | false |
| -Infinity | 負の無限大 | false |
| undefined | 未定義 | false |
| null | ヌル | true |
今回いろいろ試した結果、空文字とnullがtrueになるのが意外でした。
気をつけて使っていきたいと思います。
コメント