(標準組み込みオブジェクト)
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number
https://www.sejuku.net/blog/23408
「Number」オブジェクトは、JavaScriptで扱う「数値」の整形や定数などを利用するために使うのが一般的である。主に、「プロパティ」と「メソッド」の2つに分かれているのは一般的なオブジェクトと同様である。
「Number」オブジェクトを活用すれば、値が数値であるかを検証したり文字列を数値に変換するなど、多彩なことが実現できる。
基本的な使い方
最も基本的な「Number」オブジェクトの使い方としては、文字列や日付などさまざまな値を「数値」に変換するという用途がある。
記述方法は、【 Number( 値 ) 】のように数値に変換したい「値」を引数に指定する。
// ① 数値
console.log( '①1234= ' + Number(1234) );
// ①1234= 1234
// ② 文字列
console.log( '②hello= ' + Number('1234') );
// ②hello= 1234
// ③ 日付
console.log( '③date()= ' + Number(new Date()) );
// ③date()= 1512968940019
// ④ 16進数
console.log( '④0xffff= ' + Number('0xffff') );
// ④0xffff= 65535
①はそのまま数値なので、結果も数値になる。
②は文字列型の数値だが自動的に数値に変換される。(ただし「hello」など普通の文字列は変換されない)
③は日付データだが、Numberオブジェクトが自動的に「経過ミリ秒」に換算した数値を返してくれる。
④は16進数という特殊な値だが、一般的な数値型(10進数)に変換してくれる。
「Number」プロパティ一覧
プロパティには、JavaScriptの演算で扱える最大値 / 最小値や無限大といった特殊な値を簡単に求められるようになっているため便利である。
基本的なプロパティ一覧は以下の通り。
プロパティ名 | 概要 |
---|---|
MAX_VALUE | 表現することができる最も大きな値 |
MIN_VALUE | 表現することができる最も小さな値 |
MAX_SAFE_INTEGER | 安全に扱うことができる最も大きな値 |
MIN_SAFE_INTEGER | 安全に扱うことができる最も小さな値 |
NEGATIVE_INFINITY | 負(マイナス値)の無限大 |
POSITIVE_INFINITY | 正(プラス値)の無限大 |
NaN | 数値ではないことを表す値 |
プロパティの使い方は、【 Number.プロパティ 】のように続けてプロパティ名を記述すればよい。
//① 最大値を求める
console.log( Number.MAX_VALUE );
// 1.7976931348623157e+308
//② 安全な最小値を求める
console.log( Number.MIN_SAFE_INTEGER );
// -9007199254740991
//③ NaNを求める
console.log( Number.NaN );
// NaN
なお、②のような安全に扱える「最小値 / 最大値」というのは、JavaScriptの演算処理が保証されているという意味でもあるので覚えておくこと。
「Number」メソッド一覧
メソッドは、数値の文字列変換や数値かどうかの判断、四捨五入や桁数変換など数値を便利に扱えるように用意されている。
基本的なメソッドの一覧は次の通り。
メソッド名 | 概要 |
---|---|
toString | 数値を文字列に変換(n進数に変換も可能) |
toFixed | 四捨五入もしくは小数点の桁数を指定する |
toPrecision | 指定した桁数に変換する |
isNaN | NaNであるかどうかを判定(=数値であるかどうかをチェックする) |
isFinite | 有限な数値であるかどうかを判定 |
isSafeInteger | 安全な数値であるかどうかを判定 |
parseFloat | 文字列の数字を小数点に変換する |
parseInt | 文字列の数字を整数に変換する |
メソッドの使い方は、【 値.メソッド 】のように対象となる値に対してメソッドを実行する。
var result1 = isNaN( 'hello' );
var result2 = parseInt( 12.345 );
console.log( 'isNaN:' + result1 );
// isNaN:true
console.log( 'parseInt:' + result2 );
// parseInt:12
この例では、「isNaN()」の引数に文字列の「hello」を指定しているので、数値と認識できずにNaNとなり結果はtrueを示している。
また、「parseInt()」の引数に小数点の「12.345」を指定しているが、整数に変換されて結果的に「12」が返っているのが分かる。