一切福田,不離方寸,從心而覓,感無不通。

TypeScript Number

TypeScript 与 JavaScript 类似,支持 Number 对象。

在 TypeScript 中,Number 对象用于包装数值类型。

Number 对象是原始数值的包装对象。

类似于 String 对象,Number 对象是引用类型,与基本的 number 类型有所不同。

尽管 Number 对象提供了一些额外的属性和方法,但在 TypeScript 中更推荐直接使用基本的 number 类型,因为 Number 对象会带来性能开销和类型混淆。

语法

需要注意的是,这会创建一个引用类型的对象,而非基本的 number 类型。

注意: 如果一个参数值不能转换为一个数字将返回 NaN (非数字值)。

Number 对象与基本 number 类型的区别

  • 基本类型 number:原始数据类型,用于存储数值。
  • Number 对象:引用类型,是一个包装对象,用于包装基本数值。

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 函数的引用。

编译以上代码,得到以下 JavaScript 代码:

输出结果为:

NaN 实例

编译以上代码,得到以下 JavaScript 代码:

输出结果为:

prototype 实例

编译以上代码,得到以下 JavaScript 代码:

输出结果为:


Number 对象方法

Number对象 支持以下方法:

序号 方法 & 描述 实例
1. toExponential()把对象的值转换为指数计数法。
2. toFixed()把数字转换为字符串,并对小数点指定位数。
3. toLocaleString()把数字转换为字符串,使用本地数字格式顺序。
4. toPrecision()把数字格式化为指定的长度。
5. toString()把数字转换为字符串,使用指定的基数。数字的基数是 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。
6. valueOf()返回一个 Number 对象的原始数字值。

Number 对象的使用建议

在 TypeScript 中,通常更推荐使用基本的 number 类型,而不是 Number 对象。原因如下:

  • 性能:基本类型更轻量,性能更好。
  • 类型一致性:TypeScript 的类型系统更倾向于基本类型,使用 Number 对象可能导致意外的类型不匹配。
  • 最佳实践:基本类型的 number 更符合 TypeScript 的最佳实践,避免了对象包装带来的不必要复杂性。

如果确实需要使用 Number 对象的特定方法,可以通过 valueOf() 方法将 Number 对象转换为基本的 number 类型。

总之,TypeScript 更推荐使用基本类型 number 而不是 Number 对象,以保持代码的简洁、高效和一致性。

 

from: https://www.runoob.com/typescript/ts-number.html