コンストラクタ関数

広告

Numberクラスのコンストラクタ関数は次の1つが用意されています。

Numberクラスのオブジェクトを生成します。

パラメータ:
  val  数値または数値以外の値

Numberクラスのオブジェクトを作成するコンストラクタ関数です。引数には数値または数値以外の値を指定して下さい。

var num_obj = new Number(10);

数値以外の値を指定した場合はまず引数の値を数値に変換し、変換された値が引数に指定されたものとしてオブジェクトが作成されます。(値がどのような数値に変換されるのかについては「数値への変換」を参照して下さい)。

var num_obj = new Number("abc");

上記の場合、"abc"はNaNに変換されますので次のように記述した場合と同じです。

var num_obj = new Number(NaN);
なおコンストラクタ関数の引数を省略した場合でもエラーとはなりませんでした。恐らくnullが指定されたものとして扱われているのではと思います。
関数として呼び出した場合

Numberクラスのコンストラクタ関数をnew演算子を付けずに関数として呼び出すと、指定した引数を数値に変換した結果を返します。

var num = Number(10);

この場合、Numberクラスのオブジェクトではなく基本データ型の数値が取得されている点に注意して下さい。

Numberコンストラクタ関数のプロパティ

Numberコンストラクタ関数では5つのプロパティが定義されています。

Number.NaN                   非数
Number.POSITIVE_INFINITY     正の無限大
Number.NEGATIVE_INFINITY     負の無限大
Number.MAX_VALUE             表現可能な最大の値
Number.MIN_VALUE             表現可能な最小の値

これらのプロパティは次のように使用することができます。

var max_num = Number.MAX_VALUE;
サンプルコード

では簡単なサンプルで試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>JavaScript テスト</title>
</head>
<body>

<script type="text/javascript" src="./js/script1_1.js">
</script>

</body>
</html>
function print(str){
  document.write(str + "<br />");
}

var num_obj;

document.write("<p>");

num_obj = new Number(10);
print(num_obj);

num_obj = new Number("abc");
print(num_obj);

print("Number.NaN = " + Number.NaN);
print("Number.POSITIVE_INFINITY = " + Number.POSITIVE_INFINITY);
print("Number.NEGATIVE_INFINITY = " + Number.NEGATIVE_INFINITY);
print("Number.MAX_VALUE = " + Number.MAX_VALUE);
print("Number.MIN_VALUE = " + Number.MIN_VALUE);

document.write("</p>");

上記を実際にブラウザ見てみると次のように表示されます。

p1-1

( Written by Tatsuo Ikura )