javascript NaNとInfinityとは
- 2020.09.01
- javascript
- javascript

javascriptで定義されている値である「NaN」と「Infinity」について、簡単なコードを使って記述してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ Chrome 84.0.4147.105
※windows10にApacheのインストールはこちら
NaNとInfinityの違い
NaNは、数字で表現できない「非数」と呼ばれるものを計算した際に発生します。
1 2 3 4 5 6 7 8 9 10 11 |
// 0 ÷ 0 console.log(0/0); // NaN // abcを数値に変換 console.log(Number('abc')); // NaN // -1の平方根 console.log(Math.sqrt(-1)); // NaN // ちなみにInfinity/Infinityも console.log( Infinity/Infinity ) // NaN |
また、NANの型は「number」となってます。
1 |
console.log(typeof NaN) // number |
NANとNAN比較した場合は、falseになります
1 |
console.log( NaN === NaN ) // false |
Infinityは、無限という意味で計算結果がとてつもなく大きくなると発生します。
1 2 3 4 5 |
// 100 の 100乗 console.log(Math.pow(100, 1000)); // Infinity // 1 ÷ 0 → 限りなく無限に近くなる console.log(1/0); // Infinity |
また、Infinityの型も「number」となってます。
1 |
console.log(typeof Infinity) // number |
InfinityとInfinityを比較した場合は、trueになりますが、符号を逆にして比較するとfalseになります。
1 2 3 4 5 |
console.log( Infinity === Infinity ) // true console.log( -Infinity === -Infinity ) // true console.log( Infinity === -Infinity ) // false |
また、Infinityに数値で四則演算した場合は、以下の結果となります。
1 2 3 4 5 6 7 8 9 |
console.log(Infinity + 1) // Infinity console.log(Infinity - 1) // Infinity console.log(Infinity + Infinity) // Infinity console.log(Infinity - Infinity) // NaN console.log(Infinity * 10) // Infinity console.log(Infinity * Infinity) // Infinity console.log(-Infinity * Infinity) // -Infinity console.log(-Infinity / Infinity) // NaN console.log(Infinity**0) // 0乗は1 |
NaNとInfinity判定
NaNは、isNaN関数を使用することで判定することができます。
1 2 3 4 |
console.log(isNaN(NaN)); // true console.log(isNaN(Math.sqrt(-1))); // true console.log(isNaN(Number('abc'))); // true console.log(isNaN(Infinity - Infinity)); // true |
Infinityは、有理数であるかを判定するisFinite関数を使用することで判定することができます。
1 2 3 |
console.log(isFinite(Infinity)); // false console.log(isFinite(Math.pow(100, 1000))); // false console.log(isFinite(1/0)); // false |
-
前の記事
javascript nullとundefinedの比較 2020.09.01
-
次の記事
git pull時にエラー「fatal: refusing to merge unrelated histories」が発生した場合の対処法 2020.09.01
コメントを書く