JavaScriptの標準仕様としてビルトインされている主なオブジェクトの使い方を紹介する連載。今回は、数値を扱うNumberについて文字列変換のtoStringなどのメソッド、数値計算を扱うMathの各メソッド、日付を扱うDateについて計算や変換を行う各メソッドの基本を解説。
書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍『JavaScript Web開発パーフェクトマスター(2015年6月27日発行)』からの抜粋です。
ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
Numberオブジェクトは、数値型(number)の値をオブジェクトとして扱うためのラッパーオブジェクトです。数値のデータは基本型ですが、Stringオブジェクトのところで見たきたように、「変数名.プロパティ名(またはメソッド名)」のように書けば、自動的にNumberオブジェクトとして扱われるようになります。
Numberオブジェクトのインスタンスは、new演算子を使って次のように記述します。
「Stringオブジェクトのところでお話ししたように、Numberオブジェクトをインスタンス化することは、通常ありません」
「基本型に属するデータ型の変数は、ラッパーオブジェクトのプロパティやメソッドを使用する時点で、自動的にオブジェクトとして扱われるのでしたね」
「例として、アラートダイアログに数値の『10』を表示する場合を見てみましょう」
「このように書けば、ダイアログに『10』と表示されます。これは、内部的に次のような処理が行われたためです」
「ただし、変数num自体が文字列型になることはありません。変数numに格納されているデータは数値型のままです」
「toString()メソッドを実行する際にNumberオブジェクトのインスタンスを生成して『10』を格納し、このインスタンスからtoString()メソッドを実行して文字列に変換するという処理が内部で行われているのですね」
「なお、ラッパーオブジェクトのインスタンス化は内部で自動的に行われますので、new演算子でわざわざインスタンスを生成せずに通常の変数を宣言しておけば十分です」
「このように変数として宣言しておけば、『num.toString()』のようにNumberオブジェクトのメソッドを問題なく使うことができます」
Numberオブジェクトのメソッドには、数値を16進数や8進数表記に変換したり、桁数を揃えるメソッドがあります。これらのメソッドを使って結果を見てみることにしましょう。
Numberオブジェクトの主なプロパティとメソッドは、次のとおりです。
プロパティ | 説明 | |
---|---|---|
MAX_VALUE | 利用できる最大値。 | |
MIN_VALUE | 利用できる最小値(0に最も近い値)。 | |
NaN | 数値ではないことを示す(Not a Number)。 | |
NEGATIVE_INFINITY | 数値として利用できない負の無限大を表すための値。 | |
POSITIVE_INFINITY | 数値として利用できない正の無限大を表す特別な値。 | |
メソッド | 説明 | |
---|---|---|
toString([n] | 数値を文字列に変換して返す。mを指定した場合はn進数表記に変換する。 | |
toPrecision(桁数) | (桁数)を有効桁数として、数値を文字列に変換して返す。 | |
toFixed(桁数) | (桁数)で指定した小数点の位で四捨五入した数値を固定小数点表記の文字列にして返す。 | |
toExponentia(l 桁数) | (桁数)で指定した小数点以下の桁数で、数値を指数表記の文字列にして返す。 | |
toLocaleString() | 現在のロケール(地域フォーマット)に基づいて、数値を文字列に変換して返す。 | |
valueOf() | Numberオブジェクトが保持している数値を返す。 | |
Mathオブジェクトには、切り上げや切り捨てなどの一般的な処理から、指数/対数や三角関数を扱うプロパティやメソッドが用意されています。
ざっと並べてみましたが、このあとでまとめて実行してみることにします。
プロパティ | 説明 | |
---|---|---|
SQRT1_2 | 1/2の平方根。約 0.707 | |
SQRT2 | 2の平方根。約 1.414 | |
プロパティ | 説明 | |
---|---|---|
E | 自然対数の底として用いられる数学定数で、約 2.718 | |
LN2 | 2の自然対数。約 0.693 | |
LN10 | 10の自然対数。約 2.302 | |
LOG2E | 2を底としたEの対数。約1.442 | |
LOG10E | 10を底としたEの対数。約0.434 | |
PI | 円周率。約3.14159 | |
メソッド | 説明 | |
---|---|---|
abs(n) | 絶対値を返す。 | |
max(n1, n2) | 2つの提供された数式から大きい方の値を返す。 | |
min(n1, n2) | 2つの提供された数式から小さい方の値を返す。 | |
pow(n1, n2) | 底(n1)の式を指定の数値(n2)でべき乗した値を返す。 | |
random | 0〜1未満の疑似乱数を返す。 | |
メソッド | 説明 | |
---|---|---|
ceil(n) | 数値nの最小の整数を返す(小数点以下切り上げ)。 | |
floor(n) | 数値nの最大の整数を返す(小数点以下切り捨て)。 | |
round(n) | 指定の数式を最も近い整数に丸めて返す(四捨五入)。 | |
メソッド | 説明 | |
---|---|---|
sqrt(n) | 平方根を返す。 | |
メソッド | 説明 | |
---|---|---|
sin(n) | サイン( 正弦) を返す。 | |
cos(n) | コサイン( 余弦) を返す。 | |
tan(n) | タンジェント( 正接) を返す。 | |
asin(n) | アークサイン( 逆正弦) を返す。 | |
acos(n) | アークコサイン( 逆余弦) を返す。 | |
atan(n) | アークタンジェント( 逆正接) を返す。 | |
atan(x,y) | (x,y)座標が示す点への角度を、ラジアン単位で返す。 | |
メソッド | 説明 | |
---|---|---|
log(n) | 自然対数を返す。 | |
exp(n) | e(自然対数の底) のべき乗を返す。 | |
Copyright © ITmedia, Inc. All Rights Reserved.