数字方法可以帮助您更好地控制数字。
数字方法与属性
通常在编程语言中原始值(如: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()
- parseInt()
- parseFloat()
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_VALUE | MAX_VALUE 属性是 JavaScript 中可表示的最大的数 |
MIN_VALUE | MAX_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。
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。