JavaScript Number对象

JavaScript Number对象,JavaScript用Number对象来表示各种数值类型,包括整数和浮点数。通常,我们不需要操心自己创建Number对象,因为JavaScript会将数值转换为Number类的一个实例。

说明:全局方法和数值方法
Number对象的一些方法也可以作为全局对象的方法一样使用,换句话说,我们可以直接使用

isFinite(666)

并且所得到的结果和如下用法的结果相同。

Number.isFinite(666)

然而,尽管全局方法继续保持活跃,但一些对等的数值方法包含了细微的提升,因此人们更愿意使用这些方法。例如,isNaN()方法的全局版本经常给出误导性的结果,因为它试图在测试之前将参数转换为一个数值,而Number.isNaN()不会这么做。

Number对象有一组有用的属性和方法,我们可以用它们来分析和操作数值,下面来介绍其中的一些。

Number.isNaN()

当脚本试图把一些非数值数据当作数值处理,却无法得到数值时,其返回值就是NaN。举例来说,如果尝试用一个整数乘一个字符串,得到的结果就是非数值。用isNaN()函数能够检测非数值:

Number.isNaN(3);            // 返回false
Number.isNaN(3.14159);     // 返回false
Number.isNaN(0 / 0);        // 返回true
Number.isNaN(3*′blah′);    // 返回true

Number.isInteger()

Number.isInteger()方法用于判断传递给它的一个值或表达式是否可以求得整数值,如果这个值是数值而且是整数,它返回true,否则返回false。如下是一些示例:

Number.isInteger(666)         // true
Number.isInteger(-666)       // true
Number.isInteger(12*7)       // true
Number.isInteger(0)           // true
Number.isInteger(3/4)         // false
Number.isInteger(′666′)      // false
Number.isInteger(Infinity)  // false

注意:升级你的浏览器
Number.isInteger()方法是JavaScript标准一个新近的添加,IE 11以及更早版本的浏览器尚不支持它。

Number.parseFloat()和Number.parseInt()

JavaScript提供了两个可以把字符串强制转换为数值格式的函数,即Number. parseFloat()Number. parseInt()

Number. parseFloat()函数用于解析字符串并返回一个浮点数。

如果被解析的字符串的首字符是一个数字,函数会持续解析直到数字结束,然后返回一个数值而不是字符串:

Number.parseFloat("21.4");  //返回21.4
Number.parseFloat("76 trombones");  //返回76
Number.parseFloat("The magnificent 7");   //返回NaN

Number. parseInt()函数的功能与Number. parseFloat()相类似,但其返回的值是整数或NaN。该函数还可以有第2个可选参数,用于指定数值的基,从而返回二进制、八进制或其他进制的数值所对应的十进制数值。

Number.parseInt(18.95, 10);  //返回18
Number.parseInt("12px", 10);  //返回12
Number.parseInt("1110", 2);   //返回14
Number.parseInt("Hello");  //返回NaN

无穷大

超过JavaScript能够表示的最大数值,就是无穷大(Infinity)。在大多数JavaScript版本中,最大的数值是正或负的253,虽然它并不是真正的无穷大,但也相当大了。

还有一个表示负的无穷大的关键字字面值:-Infinity

用isFinite()函数可以判断一个数值是否无穷大。它会把参数转换为数值,如果得到的结果是NaN、正无穷大(Infinity)或负无穷大(-Infinity),函数返回false(假),其他情况返回true(真)。

Number.isFinite(21);  //返回true
Number.isFinite("This is not a numeric value");  //返回false
Number.isFinite(Math.sqrt(-1));  //返回false

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!