JavaScript

JS Number(数字)对象

下文笔者讲述Javascript中Number(数字)对象的简介说明,如下所示

Number数字对象

我们都知道JavaScript中没有严格的数字对象
JavaScript不区分整数和浮点数
所有数字统一使用IEEE754 标准(二进制浮点数算术标准)的 64 位浮点格式表示数字

JavaScript中数值最大值:
     Number.MAX_VALUE
JavaScript中数值最大值:
     Number.MIN_VALUE
var x = 898;    // 整数
var y = 8.75;   // 浮点数
var z = 0xff;   // 十六进制数:255

//当遇到比较大的数字时
//我们可以使用指数法表示

//如:
var x = 1.67e4;     // 等于 16700
var y = 4.36e+6;    // 等于 4360000
var z = 4.36e-6;    // 等于 0.00000436

注意事项:
  JavaScript 中能够表示的最大的整数是 2⁵³ - 1,
  即 9007199254740991,能够表示的最小整数是 -(2⁵³ - 1),即 -9007199254740991。

JavaScript中数字可以使用八进制也可以使用十六进制表示

八进制:
    使用 0 作为前缀

十六进制:
    使用 0x 作为前缀
var a = 0265;      
var b = 0322;     
var c = 0xab;     
var d = 0xc8;

±Infinity(无穷)

Infinity是一个特殊的值
    表示无穷大
 当一个表达式的运算结果超过JavaScript所能表示的数字上限或下限时

JavaScript会使用 Infinity 或 -Infinity
Infinity:
   正无穷大
-Infinity:
   负无穷大
var a = 88 / 0;      // 等于 Infinity
var b = -88 / 0;     // 等于 -Infinity

NaN(非数字)

NaN是JavaScript中一个特殊值
   用于某个值不是数字
NaN不等于(通过 ==、!=、===、!=== 比较)其它任何值(包括另外一个 NaN 值)
使用isNaN()函数可判断一个数是否为NaN

会返回NaN

使用函数无法将参数转换为数字时会返回NaN
  如:
    parseInt("java")、new Number("java");

任何操作数中包含NaN表达式
   例:
     88 * NaN
   如:
     "java"/5 也可返回NaN

Number对象

Number对象:
  是原始数值包装对象

创建Number对象的语法格式如下:
   var myTest = new Number(value);
   var myTest = Number(value);

   value:非数字值,此时无法转换,则会返回NaN 
var a = new Number("8888");
var b = Number("9999");
var c = 678;
var d = new Number("abc");
document.write(typeof a + "<br>");      // 输出:object
document.write(typeof b + "<br>");      // 输出:number
document.write(typeof c + "<br>");      // 输出:number
document.write(d + "<br>");             // 输出:NaN

Number 属性

Number对象中提供一些属性
属性 备注
Number.MAX_VALUE 能表示的最大值
Number.MIN_VALUE 能表示的最小值
Number.NaN 非数字
Number.NEGATIVE_INFINITY 负无穷,在溢出时返回
Number.POSITIVE_INFINITY 正无穷,在溢出时返回
Number.EPSILON 指1与Number 所能
表示的大于 1 的最小浮点数之间的差
Number.MIN_SAFE_INTEGER 最小安全整数,即 -9007199254740991
Number.MAX_SAFE_INTEGER 最大安全整数,即 9007199254740991

Number方法

Number中拥有很多方法
方法 备注
Number.parseFloat() 将字符串转换成浮点数,和全局方法 parseFloat() 作用相同
Number.parseInt() 将字符串转换成整型数字,和全局方法 parseInt() 作用相同
Number.isFinite() 判断 Number 对象是否为有穷数
Number.isInteger() 判断 Number 对象是否为整数
Number.isNaN() 判断 Number 对象是否为 NaN 类型
Number.isSafeInteger() 判断 Number 对象是否为安全整数,即范围为 -(2⁵³ - 1)到 2⁵³ - 1 之间的整数
Number.toString() 把 Number 对象转换为字符串,使用指定的基数
Number.toLocaleString() 把 Number 对象转换为字符串,使用本地数字格式顺序
Number.toFixed() 把 Number 对象转换为字符串,结果的小数点后有指定位数的数字
Number.toExponential() 把 Number 对象的值转换为指数计数法
Number.toPrecision() 把 Number 对象格式化为指定的长度
Number.valueOf() 返回一个 Number 对象的基本数字值