Dotcpp  >  编程教程  >  JS高级教程  >  JS Number对象

JS Number对象

点击打开在线编译器,边学边练

JS Number对象是JavaScript中用来表示数字的原始数据类型。它是一个包装了数值的对象,可以通过构造函数Number()创建。

JS Number对象具有以下特点:

1. 类型转换:JS Number对象可以进行自动的类型转换。例如,在进行数学运算或与字符串连接时,JS Number对象会被自动转换为数值类型。

   var num = new Number(10);
   var result = num + 5; // 结果为15,num会被转换为数值类型进行计算

2. 属性和方法:JS Number对象提供了一些属性和方法,用于处理数字类型的操作。常见的属性包括MAX_VALUE(最大值)、MIN_VALUE(最小正值)等;常见的方法包括toFixed()(保留指定小数位数的字符串表示)、toString()(将数字转换为字符串)等。

   var num = new Number(3.14159);
   console.log(num.toFixed(2)); // 输出3.14,保留两位小数
   console.log(num.toString()); // 输出"3.14159",转换为字符串

3. 原始值访问:可以使用JSNumber对象的.valueOf()方法访问其包装的原始数值。

   var num = new Number(10);
   console.log(num.valueOf()); // 输出10,访问原始值

需要注意的是,JSNumber对象在实际开发中并不常用。一般情况下,我们可以直接使用原始的数值类型进行操作,而不需要显式地创建JSNumber对象。例如:

var num = 10; // 直接使用数值类型
var result = num + 5; // 结果为15

JSNumber对象提供了一些处理数字类型的属性和方法,但在实际开发中较少使用,通常直接使用原始的数值类型即可满足需求。

精度

在讨论数值类数据时我们不可避免讨论其精度问题,这是一种良好的代码思想。

JavaScript中数字类型(Number)的精度是有限的,它使用64位双精度浮点数来表示数字。具体而言,Number类型能够准确表示大约15到17位的有效数字。

然而,由于采用二进制浮点数表示法,JavaScript的Number类型存在一些精度限制和舍入误差。这意味着在进行复杂计算时,可能会出现一些不精确的结果。

例如:

console.log(0.1 + 0.2); // 输出:0.30000000000000004

在这个例子中,0.1和0.2的精确值无法被完全准确表示为二进制浮点数,因此计算结果存在舍入误差。

如果对于高精度的计算要求,可以使用第三方库,比如BigInt.js或decimal.js,或者考虑使用其他编程语言来处理。

JavaScript中数字类型的精度是有限的,约为15到17位有效数字。在进行复杂计算时可能会存在舍入误差,需要注意处理精度问题。如果需要更高精度的计算,可以使用第三方库或其他编程语言来处理。

Infinity -无穷大

在JavaScript中,Infinity(无穷大)是一个特殊的数值表示正无穷大。它用于表示超过JavaScript数值范围的数值或进行除零操作时的结果。

当一个数值超过了JavaScript数值类型(Number)所能表示的最大值时,它被视为无穷大。例如:

var x = 1.7976931348623157E+308; // JavaScript 最大数值
console.log(x);         // 输出:1.7976931348623157e+308
console.log(x + 1);     // 输出:Infinity

当进行除以0的操作时,也会得到无穷大的结果。例如:

console.log(1 / 0);     // 输出:Infinity
console.log(-1 / 0);    // 输出:-Infinity

Infinity具有一些特定的行为:

·  任何正数乘以Infinity都等于Infinity。

·  任何负数乘以Infinity都等于负Infinity。

·  Infinity与任何非零数值相除都等于Infinity。

·  Infinity与Infinity相加、相乘或相除都等于Infinity。

Infinity不是一个可写变量,因此不能将其赋值为其他值。如果需要表示负无穷大,可以使用-Infinity来表示。

Infinity是JavaScript中表示正无穷大的特殊数值。它用于表示超出JavaScript数值范围或进行除零操作的结果。

NaN- 非数字值

在JavaScript中,NaN(Not-a-Number)是一个特殊的数值,用于表示非数字值。它是一个定义好的全局属性,表示一个操作数不是数字的情况。

NaN通常出现在以下情况下:

1.尝试将非数字字符串转换为数字:

console.log(Number('abc'));   // 输出:NaN

2.进行无效的数学运算:

console.log(0 / 0);           // 输出:NaN
console.log(Math.sqrt(-1));   // 输出:NaN

3.进行与NaN相互比较的操作:

console.log(NaN === NaN);     // 输出:false
console.log(NaN == NaN);      // 输出:false

需要注意的是,NaN与任何其他值都不相等,包括NaN本身。因此,在JavaScript中,不能使用相等运算符(==或===)来判断一个值是否为NaN。而是可以使用全局函数isNaN()来检测一个值是否为NaN:

console.log(isNaN(dot));           // 输出:true
console.log(isNaN('dotcpp'));         // 输出:true
console.log(isNaN(123));           // 输出:false

当进行数学计算时,如果涉及到可能产生NaN的情况,可以使用isNaN()函数来检测结果,避免产生不确定的结果。

NaN是JavaScript中表示非数字值的特殊数值。它出现在将非数字字符串转换为数字、无效的数学运算以及与NaN相互比较的情况中。使用全局函数isNaN()可以判断一个值是否为NaN。

Number 属性

Number是JavaScript中的内置对象之一,它具有一些属性用于处理数值。下面是一些常用的Number属性:

·  Number.MAX_VALUE:表示JavaScript中可表示的最大数值。

·  console.log(Number.MAX_VALUE);  // 输出:1.7976931348623157e+308

·  Number.MIN_VALUE:表示JavaScript中可表示的最小(接近于零)的正数值。

·  console.log(Number.MIN_VALUE);  // 输出:5e-324

·  Number.POSITIVE_INFINITY:表示正无穷大。console.log(Number.POSITIVE_INFINITY);  // 输出:Infinity

·  Number.NEGATIVE_INFINITY:表示负无穷大。

·  console.log(Number.NEGATIVE_INFINITY);  // 输出:-Infinity

·  Number.NaN:表示非数字值。

·  console.log(Number.NaN);  // 输出:NaN

这些属性可以通过Number对象进行访问,例如Number.MAX_VALUE、Number.MIN_VALUE等。

Number是一个包装对象,而不是函数,因此不能像函数一样调用Number()来创建实例。而且,这些属性是只读的,不能修改其值。

Number对象具有一些属性用于处理数值,包括最大值、最小值、正无穷大、负无穷大和非数字值等。这些属性可通过Number对象进行访问,但不能修改其值。



本文固定URL:https://www.dotcpp.com/course/1333

上一课:

JS对象使用

下一课:

JS String对象

JavaScript教程
第一章 JavaScript入门
第二章 JavaScript基础语法及数据类型
第三章 JavaScript函数
第四章 JavaScript类
第五章 JS高级教程
第六章 JS Window
第七章 JS库
Dotcpp在线编译      (登录可减少运行等待时间)