TypeScript Number
TypeScriptはJavaScriptと同様に、Numberオブジェクトをサポートしています。
TypeScriptでは、Numberオブジェクトは数値型をラップするために使用されます。Numberオブジェクトはプリミティブ数値のラッパーオブジェクトです。
Stringオブジェクトと同様に、Numberオブジェクトは参照型であり、基本的なnumber型とは異なります。
Numberオブジェクトにはいくつかの追加のプロパティとメソッドがありますが、TypeScriptでは基本的なnumber型を直接使用することが推奨されます。Numberオブジェクトはパフォーマンスのオーバーヘッドと型の混乱をもたらすためです。
構文
var num = new Number(value);
注意すべき点は、これにより参照型のオブジェクトが作成され、基本的なnumber型ではないということです。
注意:引数の値を数値に変換できない場合は、NaN(非数値)が返されます。
Numberオブジェクトと基本number型の違い
- 基本型
number:プリミティブデータ型であり、数値を格納するために使用されます。 Numberオブジェクト:参照型であり、基本数値をラップするラッパーオブジェクトです。
例
let numObject: Number = new Number(42);
console.log(typeof numLiteral); // 出力:"number"
console.log(typeof numObject); // 出力:"object"
Numberオブジェクトのプロパティ
次の表は、Numberオブジェクトがサポートするプロパティを示しています:
| 番号 | プロパティ & 説明 |
|---|---|
| 1. | MAX_VALUE 表現可能な最大の数。MAX_VALUEプロパティの値は約1.79E+308です。MAX_VALUEより大きい値は"Infinity"を表します。 |
| 2. | MIN_VALUE 表現可能な最小の数、つまり0に最も近い正数(実際には0にはなりません)。最大の負数は-MIN_VALUEで、MIN_VALUEの値は約5e-324です。MIN_VALUEより小さい値("underflow values")は0に変換されます。 |
| 3. | NaN 非数値(Not-A-Number)。 |
| 4. | NEGATIVE_INFINITY 負の無限大。オーバーフロー時にこの値が返されます。この値はMIN_VALUEより小さいです。 |
| 5. | POSITIVE_INFINITY 正の無限大。オーバーフロー時にこの値が返されます。この値はMAX_VALUEより大きいです。 |
| 6. | prototype Numberオブジェクトの静的プロパティ。オブジェクトにプロパティやメソッドを追加する機能を提供します。 |
| 7. | constructor このオブジェクトを作成したNumber関数への参照を返します。 |
TypeScript
上記のコードをコンパイルすると、以下のJavaScriptコードが得られます:
JavaScript
出力結果は次のとおりです:
TypeScript Number 属性: 最大值为: 1.7976931348623157e+308 最小值为: 5e-324 负无穷大: -Infinity 正无穷大:Infinity
NaNの例
TypeScript
上記のコードをコンパイルすると、以下のJavaScriptコードが得られます:
JavaScript
出力結果は次のとおりです:
月份是:NaN
prototypeの例
TypeScript
上記のコードをコンパイルすると、以下のJavaScriptコードが得られます:
JavaScript
出力結果は次のとおりです:
员工号: 123 员工姓名: admin 员工邮箱: [email protected]
Numberオブジェクトのメソッド
Numberオブジェクトは以下のメソッドをサポートしています:
| 番号 | メソッド & 説明 | 例 |
|---|---|---|
| 1. | toExponential()
オブジェクトの値を指数表記に変換します。 |
//toExponential() var num1 = 1225.30 var val = num1.toExponential(); console.log(val) // 输出: 1.2253e+3 |
| 2. | toFixed()
数値を文字列に変換し、小数点以下の桁数を指定します。 |
var num3 = 177.234
console.log("num3.toFixed() 为 "+num3.toFixed()) // 输出:177
console.log("num3.toFixed(2) 为 "+num3.toFixed(2)) // 输出:177.23
console.log("num3.toFixed(6) 为 "+num3.toFixed(6)) // 输出:177.234000
|
| 3. | toLocaleString()
数値を文字列に変換し、ローカルの数値形式を使用します。 |
var num = new Number(177.1234); console.log( num.toLocaleString()); // 输出:177.1234 |
| 4. | toPrecision()
数値を指定した長さにフォーマットします。 |
var num = new Number(7.123456); console.log(num.toPrecision()); // 输出:7.123456 console.log(num.toPrecision(1)); // 输出:7 console.log(num.toPrecision(2)); // 输出:7.1 |
| 5. | toString()
数値を文字列に変換し、指定した基数を使用します。数値の基数は2〜36の間の整数です。この引数を省略した場合は基数10が使用されます。 |
var num = new Number(10); console.log(num.toString()); // 输出10进制:10 console.log(num.toString(2)); // 输出2进制:1010 console.log(num.toString(8)); // 输出8进制:12 |
| 6. | valueOf()
Numberオブジェクトのプリミティブな数値を返します。 |
var num = new Number(10); console.log(num.valueOf()); // 输出:10 |
Numberオブジェクトの使用上の推奨事項
TypeScriptでは、通常Numberオブジェクトではなく基本的なnumber型を使用することが推奨されます。理由は次のとおりです:
- パフォーマンス:基本型はより軽量で、パフォーマンスが優れています。
- 型の一貫性:TypeScriptの型システムは基本型を重視しており、
Numberオブジェクトを使用すると予期しない型の不一致が発生する可能性があります。 - ベストプラクティス:基本型の
numberはTypeScriptのベストプラクティスにより適合し、オブジェクトのラッピングによる不必要な複雑さを回避できます。
どうしてもNumberオブジェクトの特定のメソッドを使用する必要がある場合は、valueOf()メソッドを使用してNumberオブジェクトを基本的なnumber型に変換できます。
要するに、TypeScriptではNumberオブジェクトではなく基本型のnumberを使用することが推奨され、コードの簡潔さ、効率性、一貫性を保つことができます。
例
let numObject: Number = new Number(123.456);
console.log(numLiteral.toFixed(2)); // 出力:"123.46"
console.log(numObject.valueOf()); // 出力:123.456