ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptネイティブオブジェクトのNumberオブジェクトのプロパティとメソッドを詳しく解説_JavaScriptスキル

JavaScriptネイティブオブジェクトのNumberオブジェクトのプロパティとメソッドを詳しく解説_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 16:09:351730ブラウズ

Number オブジェクトを作成するための構文:

コードをコピーします コードは次のとおりです:

var myNum = 新しい数値(値);
var myNum = 数値(値);

Number() を演算子 new とともにコンストラクターとして使用すると、新しく作成された Number オブジェクトが返されます。 new 演算子を使用せずに Number() を関数として呼び出した場合、その引数はプリミティブ数値に変換され、この値 (変換が失敗した場合は NaN) が返されます。

MAX_VALUE

MAX_VALUE 属性は、JavaScript で表現できる最大の数値です。おおよその値は 1.7976931348623157 x 10308 です。最大の負の数は -MAX_VALUE です。

MAX_VALUE より大きい数値は無限大です。 MAX_VALUE は静的プロパティであるため、呼び出しメソッドは Number.MAX_VALUE である必要があります。

コードをコピーします コードは次のとおりです:

console.log(Number.MAX_VALUE) //1.7976931348623157e 308

MIN_VALUE

MIN_VALUE 属性は、JavaScript で表現できる最小の数値です (0 に近いですが、負ではありません)。その近似値は 5 x 10-324 です。

MIN_VALUE より小さい数値はすべて 0 に変換されます。

MIN_VALUE は静的プロパティであるため、呼び出しメソッドは Number.MIN_VALUE である必要があります。

ナン

NaN 属性は、数値以外の値を表す特別な値です。この属性は、値が数値ではないことを示すために使用されます。 Number オブジェクトをこの値に設定して、それが数値ではないことを示すことができます。

isNaN() グローバル関数を使用すると、値が NaN 値であるかどうかを判断できます。

Number.NaN は、特定の算術演算 (負の数の平方根を求めるなど) の結果が数値ではないことを示す特別な値です。 parseInt() メソッドと parseFloat() メソッドは、指定された文字列を解析できない場合にこの値を返します。通常は有効な数値を返す一部の関数では、このメソッドを使用し、Number.NaN を使用してエラー状態を示すこともできます。

JavaScript は Number.NaN を NaN として出力します。 NaN は、それ自体を含む他の数値と比較すると常に等しくないことに注意してください。したがって、Number.NaN と比較して値が数値かどうかをテストすることはできませんが、比較のために isNaN() を呼び出すことしかできません。

注: グローバル変数 NaN は Number.NaN と同じです。NaN は構成不可、変更不可の属性です。

コードをコピー コードは次のとおりです:

console.log(parseInt("abc")); //NaN
console.log(NaN === NaN); //false
console.log(Number.NaN === NaN); //false
console.log(isNaN(NaN)) //true
console.log(isNaN(Number.NaN)); //true

NEGATIVE_INFINITY

NEGATIVE_INFINITY 属性は、-Number.MAX_VALUE より小さい値を表します。この値は負の無限大を表します。

JavaScript は NEGATIVE_INFINITY を表示するときに -Infinity を使用します。この値の算術動作は無限大と非常に似ています。たとえば、数値を無限大で乗算しても結果は無限大となり、数値を無限大で割った場合も結果は 0 になります。

-Infinity は Number.NEGATIVE_INFINITY と同じです。

コードをコピー コードは次のとおりです:

var x = (-Number.MAX_VALUE) * 2;
var y = Number.NEGATIVE_INFINITY;
console.log(x); //-無限大
console.log(y); //-無限大
console.log(x===y); //true

POSITIVE_INFINITY

POSITIVE_INFINITY 属性は Number.MAX_VALUE より大きい値を表します。この値は正の無限大を表します。

JavaScript は POSITIVE_INFINITY を表示するときに Infinity を使用します。この値の算術動作は無限大と非常に似ています。たとえば、数値を無限大で乗算しても結果は無限大となり、数値を無限大で割った場合も結果は 0 になります。

無限大は Number.POSITIVE_INFINITY と同じです。

isFinite() メソッドは、パラメーターが有限数であるかどうかを判断できます。

コードをコピー コードは次のとおりです:

var x = Number.NEGATIVE_INFINITY;
var y = Number.POSITIVE_INFINITY;
var z = 無限大;
var a = "abc";
var b = 123;

console.log(isFinite(x)) //false
console.log(isFinite(y)); //false
console.log(isFinite(z)); //false
console.log(isFinite(a)); //false
console.log(isFinite(b)); //true

toString()

toString() メソッドは、Number オブジェクトを文字列に変換し、結果を返します。

NumberObject.toString(radix)

パラメータの基数はオプションです。数値を表す基数を指定し、2 ~ 36 の整数になります。このパラメータを省略した場合は、基数 10 が使用されます。誤解を防ぐために、常にこのパラメータを指定することをお勧めします。たとえば、基数が 2 の場合、NumberObject はバイナリ値を表す文字列に変換されます。

このメソッドを呼び出すオブジェクトが Number ではない場合、TypeError 例外がスローされます。

コードをコピーします コードは次のとおりです:

var a = 100;

console.log(a.toString()) //100
console.log(a.toString(10)); //100
console.log(a.toString(2)); //1100100
console.log(a.toString(8)); //144
console.log(a.toString(16)); //64

toLocaleString()

toLocaleString() メソッドは、Number オブジェクトをローカル形式の文字列に変換できます。

実装が決定され、ローカル仕様に従ってフォーマットされた数値の文字列表現。小数点または千の位の区切り文字に使用される句読点に影響を与える可能性があります。

このメソッドを呼び出すオブジェクトが Number ではない場合、TypeError 例外がスローされます。

コードをコピー コードは次のとおりです:

var a = 123456;

console.log(a.toLocaleString()) //123,456
console.log(a.toLocaleString("zh-Hans-CN-u-nu-hanidec")); //1、2、3、4、5、6

その他のパラメータについては、以下を参照してください: MDN

toFixed()

toFixed() メソッドは、Number を指定された小数点以下の桁数の数値に丸めます。

NumberObject.toFixed(num)

パラメータ num は必須です。小数点以下の桁数を 0 から 20 までの値で指定します。一部の実装では、より広い範囲の値をサポートできます。このパラメータを省略した場合は、代わりに 0 が使用されます。

NumberObject の文字列表現を返します。これは指数カウントを使用せず、小数点以下の桁数が固定されています。数値は、指定された長さになるように、必要に応じて丸められ、ゼロが埋め込まれます。 num が le 21 より大きい場合、このメソッドは単に NumberObject.toString() を呼び出し、指数表記の文字列を返します。

RangeError は、num が小さすぎるか大きすぎる場合にスローされます。 0 から 20 までの値では、この例外は発生しません。一部の実装では、より広い範囲またはより狭い範囲の値がサポートされます。このメソッドを呼び出すオブジェクトが Number ではない場合、TypeError 例外がスローされます。

コードをコピー コードは次のとおりです:

var n = 12345.6789;

console.log(n.toFixed()); //12346
console.log(n.toFixed(2)); //12345.68
console.log(n.toFixed(6)); //12345.678900
console.log((1.23e 20).toFixed(2)); //123000000000000000000.00
console.log((1.23e-10).toFixed(2)); //0.00

注: 浮動小数点数の処理のため、toFixed() メソッドによって表示される結果は、いわゆる「四捨五入」または「6 から 5 を 2 倍に四捨五入する」ではなく、四捨五入、6 および 5 のパフォーマンスです。 5つ目。

コードをコピー コードは次のとおりです:

//クロム
console.log(( 0.035 ).toFixed( 2 )); //0.04
console.log(( 0.045 ).toFixed( 2 )); //0.04

toFixed() のデフォルトの動作を置き換える独自のメソッドを作成することをお勧めします。SO に関するディスカッション:

を参照してください。

コードをコピーします コードは次のとおりです:

Number.prototype.toFixed = function(len){
var temp = Math.pow(10,len);
var s = Math.ceil(this * temp)
戻り値/温度
}

console.log(( 0.035 ).toFixed( 2 )); //0.04
console.log(( 0.045 ).toFixed( 2 )); //0.05

toExponential()

toExponential() メソッドは、オブジェクトの値を指数表記に変換できます。

NumberObject.toExponential(num)

パラメータ num はオプションです。指数表記の小数点以下の桁数を 0 から 20 までの値で指定します。一部の実装では、より広い範囲の値をサポートできます。この引数を省略した場合は、できるだけ多くの数値が使用されます。

指数表記を使用して NumberObject の文字列表現を返します。つまり、小数点の前に 1 桁、小数点の後に num 桁あります。数値の小数部分は四捨五入され、必要に応じてゼロが埋め込まれ、指定された長さに達します。

RangeError は、num が小さすぎるか大きすぎる場合にスローされます。 0 から 20 までの値では、この例外は発生しません。一部の実装では、より広い範囲またはより狭い範囲の値がサポートされます。このメソッドを呼び出すオブジェクトが Number ではない場合、TypeError 例外がスローされます。

コードをコピーします コードは次のとおりです:

var num = 10000.1234;

console.log(num.toExponential()) //1.00001234e 4
console.log(num.toExponential(2)); //1.00e 4
console.log(num.toExponential(10)); //1.0000123400e 4

toPrecision()

toPrecision() メソッドは、数値を 10 進数の形式の文字列にフォーマットします。

NumberObject.toPrecision(num)

パラメータ num はオプションです。数値の精度を制御するために使用されます。このパラメータは 1 ~ 21 の値です。このパラメータを省略すると、数値を 10 進数値に変換する代わりに、メソッド toString() が呼び出されます。

コードをコピーします コードは次のとおりです:

var num = 10000.1234;

console.log(num.toPrecision()) //10000.1234
console.log(num.toPrecision(2)); //1.0e 4
console.log(num.toPrecision(10)); //10000.12340

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。