TypeScript 与 JavaScript 类似,支持 Number 对象。
在 TypeScript 中,Number 对象用于包装数值类型。
Number 对象是原始数值的包装对象。
类似于 String 对象,Number 对象是引用类型,与基本的 number 类型有所不同。
尽管 Number 对象提供了一些额外的属性和方法,但在 TypeScript 中更推荐直接使用基本的 number 类型,因为 Number 对象会带来性能开销和类型混淆。
1 |
var num = new Number(value); |
需要注意的是,这会创建一个引用类型的对象,而非基本的 number 类型。
注意: 如果一个参数值不能转换为一个数字将返回 NaN (非数字值)。
number
:原始数据类型,用于存储数值。Number
对象:引用类型,是一个包装对象,用于包装基本数值。
1 2 3 4 5 |
let numLiteral: number = 42; let numObject: Number = new Number(42); console.log(typeof numLiteral); // 输出:"number" console.log(typeof numObject); // 输出:"object" |
下表列出了 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 函数的引用。 |
1 2 3 4 5 |
console.log("TypeScript Number 属性: "); console.log("最大值为: " + Number.MAX_VALUE); console.log("最小值为: " + Number.MIN_VALUE); console.log("负无穷大: " + Number.NEGATIVE_INFINITY); console.log("正无穷大:" + Number.POSITIVE_INFINITY); |
编译以上代码,得到以下 JavaScript 代码:
1 2 3 4 5 |
console.log("TypeScript Number 属性: "); console.log("最大值为: " + Number.MAX_VALUE); console.log("最小值为: " + Number.MIN_VALUE); console.log("负无穷大: " + Number.NEGATIVE_INFINITY); console.log("正无穷大:" + Number.POSITIVE_INFINITY); |
输出结果为:
1 2 3 4 5 |
TypeScript Number 属性: 最大值为: 1.7976931348623157e+308 最小值为: 5e-324 负无穷大: -Infinity 正无穷大:Infinity |
1 2 3 4 5 6 7 |
var month = 0 if( month<=0 || month >12) { month = Number.NaN console.log("月份是:"+ month) } else { console.log("输入月份数值正确。") } |
编译以上代码,得到以下 JavaScript 代码:
1 2 3 4 5 6 7 8 |
var month = 0; if (month <= 0 || month > 12) { month = Number.NaN; console.log("月份是:" + month); } else { console.log("输入月份数值正确。"); } |
输出结果为:
1 |
月份是:NaN |
1 2 3 4 5 6 7 8 9 10 11 |
function employee(id:number,name:string) { this.id = id this.name = name } var emp = new employee(123,"admin") employee.prototype.email = "admin@runoob.com" console.log("员工号: "+emp.id) console.log("员工姓名: "+emp.name) console.log("员工邮箱: "+emp.email) |
编译以上代码,得到以下 JavaScript 代码:
1 2 3 4 5 6 7 8 9 |
function employee(id, name) { this.id = id; this.name = name; } var emp = new employee(123, "admin"); employee.prototype.email = "admin@runoob.com"; console.log("员工号: " + emp.id); console.log("员工姓名: " + emp.name); console.log("员工邮箱: " + emp.email); |
输出结果为:
1 2 3 |
员工号: 123 员工姓名: admin 员工邮箱: admin@runoob.com |
Number对象 支持以下方法:
序号 | 方法 & 描述 | 实例 | ||
---|---|---|---|---|
1. | toExponential()把对象的值转换为指数计数法。 |
|
||
2. | toFixed()把数字转换为字符串,并对小数点指定位数。 |
|
||
3. | toLocaleString()把数字转换为字符串,使用本地数字格式顺序。 |
|
||
4. | toPrecision()把数字格式化为指定的长度。 |
|
||
5. | toString()把数字转换为字符串,使用指定的基数。数字的基数是 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。 |
|
||
6. | valueOf()返回一个 Number 对象的原始数字值。 |
|
在 TypeScript 中,通常更推荐使用基本的 number 类型,而不是 Number 对象。原因如下:
Number
对象可能导致意外的类型不匹配。number
更符合 TypeScript 的最佳实践,避免了对象包装带来的不必要复杂性。如果确实需要使用 Number 对象的特定方法,可以通过 valueOf() 方法将 Number 对象转换为基本的 number 类型。
总之,TypeScript 更推荐使用基本类型 number 而不是 Number 对象,以保持代码的简洁、高效和一致性。
1 2 3 4 5 |
let numLiteral: number = 123.456; let numObject: Number = new Number(123.456); console.log(numLiteral.toFixed(2)); // 输出:"123.46" console.log(numObject.valueOf()); // 输出:123.456 |
from: https://www.runoob.com/typescript/ts-number.html