コンテンツにスキップ

JavaScript/Number

出典: フリー教科書『ウィキブックス(Wikibooks)』


Number オブジェクトは、数値を表すラッパーオブジェクトです。このオブジェクトは、プリミティブ型の数値を操作するためのメソッドやプロパティを提供します[1]

構文

[編集]
new Number(value)
Number(value)
  • value: 数値に変換する値。省略した場合は 0 になります。

プロパティとメソッド

[編集]

静的プロパティ

[編集]
静的プロパティ
名称 解説
Number.EPSILON 1 と、Number として表現可能な 1 より大きい最小の値との間の差を表します。
Number.MAX_SAFE_INTEGER JavaScript における最大の安全な整数を表します (2^53 - 1)。
Number.MAX_VALUE JavaScript における最大の数値を表します。
Number.MIN_SAFE_INTEGER JavaScript における最小の安全な整数を表します (-(2^53 - 1))。
Number.MIN_VALUE JavaScript における最小の正の数値を表します。
Number.NEGATIVE_INFINITY 負の無限大を表します。
Number.NaN Not-A-Number (非数) を表します。
Number.POSITIVE_INFINITY 正の無限大を表します。
Number.length Numberコンストラクタが受け取る引数の数を返します。常に1です。
Number.name Numberコンストラクタの名前を返します。常に"Number"です。
Number.prototype すべての数値オブジェクトの祖先となるNumberプロトタイプオブジェクトへの参照です。

静的アクセサ

[編集]

静的メソッド

[編集]
静的メソッド
名称 解説
Number.isFinite() 渡された値が有限数であるかどうかを判定します。
Number.isInteger() 渡された値が整数であるかどうかを判定します。
Number.isNaN() 渡された値が NaN であるかどうかを判定します。
Number.isSafeInteger() 渡された値が安全な整数であるかどうかを判定します。
Number.parseFloat() 文字列を浮動小数点数に変換します。
Number.parseInt() 文字列を整数に変換します。

インスタンスプロパティ

[編集]

インスタンスアクセサ

[編集]

インスタンスメソッド

[編集]
インスタンスメソッド
名称 解説
Number.prototype.constructor() Numberオブジェクトのインスタンスを生成した関数を返します。
Number.prototype.toExponential() 数値を指数表記の文字列で返します。
Number.prototype.toFixed() 数値を固定小数点表記の文字列で返します。
Number.prototype.toLocaleString() 数値をロケールに合わせた文字列で返します。
Number.prototype.toPrecision() 数値を指定された精度で表す文字列で返します。
Number.prototype.toString() 数値を指定された基数(デフォルトは10)の文字列で返します。
Number.prototype.valueOf() Numberオブジェクトのプリミティブ値を返します。

[編集]

Number オブジェクトの作成

[編集]

以下のプログラムは、Number コンストラクタを使用して Number オブジェクトを作成します。

const a = new Number(123);
const b = Number(123);
console.log(typeof a); // "object"
console.log(typeof b); // "number"
console.log(a === 123); // false
console.log(b === 123); // true

このプログラムでは、new Number() を使用すると Number オブジェクトが作成され、Number() を使用するとプリミティブ型の数値が作成されます。Number オブジェクトとプリミティブ型の数値は厳密等価演算子 (===) で比較すると等しくありません。

数値の変換

[編集]

以下のプログラムは、Number を使用して様々な値を数値に変換します。

console.log(Number("123")); // 123
console.log(Number("123.45")); // 123.45
console.log(Number("")); // 0
console.log(Number("0x11")); // 17
console.log(Number("0b1010")); // 10
console.log(Number("0o10")); // 8
console.log(Number("foo")); // NaN
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN

このプログラムでは、Number() を使用して文字列、真偽値、null、undefined などを数値に変換しています。数値として解釈できない値は NaN に変換されます。

数値のフォーマット

[編集]

以下のプログラムは、Number オブジェクトのメソッドを使用して数値をフォーマットします。

const num = 123.456;
console.log(num.toFixed(2)); // "123.46"
console.log(num.toPrecision(4)); // "123.5"
console.log(num.toExponential(2)); // "1.23e+2"
console.log(num.toString(16)); // "7b.74bc6a7ef9db"
console.log(num.toString(2)); // "1111011.0111010..."

このプログラムでは、toFixed(), toPrecision(), toExponential(), toString() などのメソッドを使用して数値を様々な形式でフォーマットしています。

注意点

[編集]
  • コンストラクタの使用: new Number() を使用すると Number オブジェクトが作成されますが、通常はプリミティブ型の数値 (Number()) を使用することが推奨されます。
  • NaN の判定: NaN は自分自身と等しくないという特殊な性質があるため、Number.isNaN() を使用して判定する必要があります。
  • 安全な整数: Number.isSafeInteger() を使用して、数値が安全な整数範囲内かどうかを判定できます。
  • 浮動小数点の精度: JavaScript の数値は IEEE 754 倍精度浮動小数点数として実装されているため、精度に制限があります。

脚註

[編集]
  1. ^ プリミティブ型の数値に対してメソッドを呼び出すと、一時的に Number オブジェクトに変換されます。

下位階層のページ

[編集]

関連項目

[編集]

外部リンク

[編集]

附録

[編集]

静的プロパティ

[編集]
Number.EPSILON
Number.MAX_SAFE_INTEGER
Number.MAX_VALUE
Number.MIN_SAFE_INTEGER
Number.MIN_VALUE
Number.NEGATIVE_INFINITY
Number.NaN
Number.POSITIVE_INFINITY
Number.length
Number.name
Number.prototype

静的アクセサ

[編集]

静的メソッド

[編集]
Number.isFinite()
Number.isInteger()
Number.isNaN()
Number.isSafeInteger()
Number.parseFloat()
Number.parseInt()

継承関係

[編集]

Numberのインスタンスプロパティ

[編集]

Numberのインスタンスアクセサ

[編集]

Numberのインスタンスメソッド

[編集]

Numberのインスタンスプロパティ

[編集]

Numberのインスタンスアクセサ

[編集]

Numberのインスタンスメソッド

[編集]
Number.prototype.constructor()
Number.prototype.toExponential()
Number.prototype.toFixed()
Number.prototype.toLocaleString()
Number.prototype.toPrecision()
Number.prototype.toString()
Number.prototype.valueOf()

Objectのインスタンスプロパティ

[編集]

Objectのインスタンスアクセサ

[編集]
get Object.prototype.__proto__

Objectのインスタンスメソッド

[編集]
Object.prototype.__defineGetter__()
Object.prototype.__defineSetter__()
Object.prototype.__lookupGetter__()
Object.prototype.__lookupSetter__()
Object.prototype.constructor()
Object.prototype.hasOwnProperty()
Object.prototype.isPrototypeOf()
Object.prototype.propertyIsEnumerable()
Object.prototype.toLocaleString()
Object.prototype.toString()
Object.prototype.valueOf()