下文笔者讲述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 对象的基本数字值 |