数字方法可以帮助您更好地控制数字。

数字方法与属性

通常在编程语言中原始值(如:3.14或1985),不能有属性及函数,因为这些不是对象。 但在Javascript中,原始数值可以有方法和属性。因为Javascript可以把原始数值处理成对象,当有方法和属性作用于这些原始数值上时。

toString()

toString()将数字转换成字符串。 所有的数字方法都可以用于任何类型的数字。 如:文字(literal),变量(variable),表达式(expression)

var x = 123;
x.toString();            // returns 123 from variable x
(123).toString();        // returns 123 from literal 123
(100 + 23).toString();   // returns 123 from expression 100 + 23

为了有更准确的描述,有些地方我会直接用英文。例如上面例子中的returns(返回),我们在很多国内的,中文的翻译中,把return翻译成返回。而有的时候return都翻译成返回,意思都不是很准确。就上面的returns,翻译成“回传”,可能意思更准确,也更容易让人理解。所以,当遇到英文的时候,一定要自己去了解一下。就像看外文电影一样,如果看字幕,无论看多少外文电影,你的外文水平永远得不到提高。而且,翻译过来的东西,很可能“变味”了。

toExponential()方法

toExponential()方法返回一个字符串,使用四舍五入法且用指数表示法(exponential notation)。

var x = 9.656;
x.toExponential(2);     // returns 9.66e+0
x.toExponential(4);     // returns 9.6560e+0
x.toExponential(6);     // returns 9.656000e+0

参数是可选项,如果没有指定参数,那么将不会进行四舍五入操作。

var x = 9.656;
x.toExponential();     // returns 9.656e+0
toFixed()方法

toFixed() 返回一个字符串,用四舍五入的方法显示指定位小数的数字。如果参数传的是2,那么小数为2位。

var x = 9.656;
x.toFixed(0);           // returns 10
x.toFixed(2);           // returns 9.66
x.toFixed(4);           // returns 9.6560
x.toFixed(6);           // returns 9.656000

toFixed(2) 非常适用于货币运算。

toPrecision()方法

toPrecision()方法返回一个字符串,用四舍五入的方法显示指定长度的数字。

var x = 99.656;
document.getElementById("demo").innerHTML = 
    x.toPrecision() + "<br>" +
    x.toPrecision(1) + "<br>" +
    x.toPrecision(2) + "<br>" +
    x.toPrecision(4) + "<br>" +
    x.toPrecision(6);

结果是:
99.656
1e+2
1.0e+2
99.66
99.6560

valueOf()方法

valueOf()方法返回一个数值。

var x = 123;
x.valueOf();            // returns 123 from variable x
(123).valueOf();        // returns 123 from literal 123
(100 + 23).valueOf();   // returns 123 from expression 100 + 23

JavaScript中,一个数字可以是原始值(typeof = number),或者是一个对象(typeof = object)。 valueOf()方法在JavaScript中用于将Number对象转换为原始值。
所有的JavaScript数据类型都有一个valueOf()和一个toString()方法。

将变量转换为数字

有三种方法可以将变量转换为数字:

Number()方法

Number()方法中它的数字转换自它的参数。

Number(true);          // returns 1
Number(false);         // returns 0
Number("10");          // returns 10
Number("  10");        // returns 10
Number("10  ");        // returns 10
Number("10 20");       // returns NaN 
Number("John");        // returns NaN

如果无法转换,会返回NaN。 NaN是Not a Number的简写。就是不是一个数字的意思。 Number()用于日期的时候:

Number(new Date(2017-09-30));    // returns 1506729600000  

上面的Number()方法返回的是自1970-1-1以来的毫秒数。

parseInt()

parseInt()将一个字符串解析成整数。允许空格,但只有第一个数字会被回传。

parseInt("10");         // returns 10
parseInt("10.33");      // returns 10
parseInt("10 20 30");   // returns 10
parseInt("10 years");   // returns 10
parseInt("years 10");   // returns NaN 

如果无法转换,会返回NaN。

parseFloat()方法

parseFloat()将一个字符串解析成数字。允许空格,但依然是只传回第一个数字。

parseFloat("10");        // returns 10
parseFloat("10.33");     // returns 10.33
parseFloat("10 20 30");  // returns 10
parseFloat("10 years");  // returns 10
parseFloat("years 10");  // returns NaN

如果无法转换,会返回NaN。

数字的属性

属性描述
MAX_VALUEMAX_VALUE 属性是 JavaScript 中可表示的最大的数
MIN_VALUEMAX_VALUE 属性是 JavaScript 中可表示的最小的数
NEGATIVE_INFINITY表示负无穷(在溢出时返回)
NaN表示“非数字”值
POSITIVE_INFINITY表示正无限大(在溢出时返回)
document.getElementById("demo").innerHTML = Number.MAX_VALUE; // 1.7976931348623157e+308

MAX_VALUE是Javascript Number对象的静态属性,只能通过Number.MAX_VALUE调用。
使用自定义的Number x(x.MAX_VALUE )将无法获取MAX_VALUE属性。会返回undefined。

完整的JavaScript数字的参考

英文W3c:https://www.w3schools.com/jsref/jsref_obj_number.asp