• 微信号
  • 微信号
目录

javascript

您当前的位置:首页 > 我的笔记 > javascript>JS Number(数字)对象

JS Number(数字)对象

在 JavaScript 中您可以使用十进制、十六进制或八进制表示法来表示整数或浮点数。与其它编程语言不同,JavaScript 中的数字并不区分整数和浮点数,统一使用 IEEE754 标准(二进制浮点数算术标准)的 64 位浮点格式表示数字,能表示的较大值(Number.MAX_VALUE)为 ±1.7976931348623157e+308,**小值(Number.MIN_VALUE)为 ±5e-324。示例代码如下:

var x = 123; 
// 整数 
var y = 3.14; 
// 浮点数 
var z = 0xff; 
// 十六进制数:255

对于比较大的数字可以使用指数表示法来表示,例如 6.02e+23 等于 6.02 x 10²³,示例代码如下:

var x = 1.57e4; 
// 等于 15700 
var y = 4.25e+6; 
// 等于 4250000 
var z = 4.25e-6; 
// 等于 0.00000425

提示:JavaScript 中能够表示的较大的整数是 2?³ - 1,即 9007199254740991,能够表示的**小整数是 -(2?³ - 1),即 -9007199254740991。

除了可以使用十进制表示数字外,您也可以使用八进制或十六进制表示法来表示数字,其中八进制表示法使用 0 作为前缀,十六进制表示法使用 0x 作为前缀,示例代码如下:

var a = 0377; 
// 等于 255 
var b = 0123; 
// 等于 83 
var c = 0xff; 
// 等于 255 
var d = 0xb4; 
// 等于 180

注意:整数可以用十进制、十六进制和八进制表示法表示,浮点数可以用十进制或指数表示法表示。

±Infinity(无穷)

Infinity 是一个特殊的值,表示无穷大。当一个表达式的运算结果超过了 JavaScript 所能表示的数字上限或下限时,JavaScript 就会使用 Infinity 或 -Infinity 表示这个结果,其中 Infinity 表示正无穷大,-Infinity 表示负无穷大。示例代码如下:

var a = 5 / 0; 
// 等于 Infinity 
var b = -5 / 0; 
// 等于 -Infinity

NaN(非数字)

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

以下几种操作会返回 NaN:

Number 对象

Number 对象是原始数值的包装对象,创建 Number 对象的语法格式如下:

var myNum = new Number(value); var myNum = Number(value);

其中 value 为要创建的 Number 对象的数值,若 value 为一个非数字的值,则会尝试将其转换为数字,若转换失败则会返回 NaN。

当 Number() 函数和 new 运算符一起使用时,会创建一个新的 Number 对象。如果不用 new 运算符,把 Number() 当作一个函数来调用,则会将其中的参数转换为一个数值,并且返回这个值(如果转换失败,则返回 NaN)。

示例代码如下:

var a = new Number("123"); 
var b = Number("456"); 
var c = 789; 
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 方法

除了属性外,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 对象的基本数字值