编辑这个页面须要登录或更高权限!

JavaScript 数值方法

在上一章中,我们已经学习了数字的基础知识,让我们前进一步,开始考虑可以使用内置方法和属性对数字执行哪些有用的操作。

原始值,例如(25或3.14),不能具有属性或方法(因为它们不是对象)。

但是在JavaScript中,方法和属性也可用于原始值,因为JavaScript在执行方法和属性时会将原始值视为对象。

toExponential()方法

toExponential()方法返回以数字表示的数字字符串。

此方法采用一个可选参数,该参数定义小数点后的字符数。

var num = 12.5;
num.toExponential();  // 返回 1.25e+1
num.toExponential(2); // 返回 1.25e+1
num.toExponential(4); // 返回 1.2500e+1
num.toExponential(6); // 返回 1.250000e+1
测试看看‹/›

注意:指数符号可用于表示数量级非常大或非常小的数字。例如,95700000000可以写为957e8或957e + 8。

toFixed()方法

toFixed()方法使用定点表示法格式化数字。

此方法返回的值是一个字符串,并且在小数点后有确切指定的位数。

var num = 12.525;
num.toFixed();  // 返回 13
num.toFixed(2); // 返回 12.53
num.toFixed(4); // 返回 12.5250
num.toFixed(6); // 返回 12.525000
测试看看‹/›

如果需要,数字会四舍五入,如果需要,小数部分将用零填充,以便具有指定的长度。

toPrecision()方法

toPrecision()方法返回一个字符串,该数字表示指定精度的数字。

此方法返回的值是一个字符串,并且在小数点后有确切指定的位数。

var num = 5.123456;
num.toPrecision();// 5.123456
num.toPrecision(1);   // 5
num.toPrecision(2);   // 5.1
num.toPrecision(3);   // 5.12
num.toPrecision(4);   // 5.123
num.toPrecision(10);  // 5.123456000
测试看看‹/›

toString()方法

toString()方法返回一个表示指定数字的字符串。

var num = 255;
num.toString();   // 返回 "255" 作为字符串
测试看看‹/›

toString()方法可以选择接受2到36范围内的整数参数,该整数参数指定用于表示数值的基数。

var num = 255;
num.toString(10);  // 返回 "255"
num.toString(16);  // 返回 "ff"
num.toString(8);   // 返回 "377"
num.toString(2);   // 返回 "11111111"
测试看看‹/›

另外,我们可以在括号内放置一个值,而不是一个变量。

(9048).toString();// 返回 "9048"
(false).toString();   // 返回 "false"
(50 + 20).toString(); // 返回 "70"
测试看看‹/›

valueOf()方法

valueOf()方法返回数字的原始值。

var x = new Number(50);
typeof x.valueOf(); // 返回数字(而不是对象)
测试看看‹/›

在JavaScript中,数字可以是原始值或对象。

valueOf()方法在JavaScript中用于将Number对象转换为原始值。

将变量转换为数字

有3个JavaScript 全局函数可用于将变量转换为数字:

Number()函数

Number()函数将给定的参数转换为数字。

如果该值不能转换为数字,则返回NaN。

Number(true);   // 返回 1
Number(false);  // 返回 0
Number("100");  // 返回 100
Number("2 + 6");// 返回 NaN
Number("2 6");  // 返回 NaN
Number("Parrot");   // 返回 NaN
测试看看‹/›

如果参数是Date对象,则该Number()函数返回自UTC 1970年1月1日以来的毫秒数。

Number(new Date());
测试看看‹/›

parseInt()函数

parseInt()函数解析一个字符串,并返回一个整数。

当您处理CSS单位等值(例如15px,4em等)并且要从中提取数值时,此功能很有用。

parseInt("12");   // 返回 12
parseInt("12.25");// 返回 12
parseInt("15px"); // 返回 15
parseInt("4 days");   // 返回 4
parseInt("Day 4");// 返回 NaN
parseInt("36 24 36"); // 返回 36
parseInt("   20   "); // 返回 20
测试看看‹/›

如果第一个字符不能转换为数字,则返回NaN。

parseInt()函数可选地接受一个整数参数,该整数参数用于指定要使用的数字系统,例如,基数16(十六进制)表示应将字符串中的数字从十六进制数字解析为十进制数字。

parseInt("FF", 16);// 返回 255
parseInt("1111", 2);   // 返回 15
测试看看‹/›

parseFloat()函数

parseFloat()函数解析一个字符串,并返回一个浮点数。

parseFloat("12.25");  // 返回 12.25
parseFloat("5.6em");  // 返回 5.6
parseFloat("80.5 kg");// 返回 80.5
parseFloat("weight 80.5 kg"); // 返回 NaN
测试看看‹/›

如果第一个字符不能转换为数字,则返回NaN。

JavaScript 数字属性

下表列出了Number对象的属性:

属性描述
MAX_VALUE返回JavaScript中可能的最大数字
MIN_VALUE返回JavaScript中可能的最小数字
NEGATIVE_INFINITY表示负无穷大(溢出时返回)
POSITIVE_INFINITY表示无穷大(溢出时返回)
NaN代表“非数字”值

注意:Number的所有属性都是静态的,您始终将其用作Number.property,而不是作为您创建的Number对象的属性。

JavaScript MIN_VALUE和MAX_VALUE

MAX_VALUE属性表示JavaScript中可表示的最大数值。

Number.MAX_VALUE;
测试看看‹/›

MIN_VALUE属性表示JavaScript中可表示的最小正数值。

Number.MIN_VALUE;
测试看看‹/›

JavaScript POSITIVE_INFINITY和NEGATIVE_INFINITY

NEGATIVE_INFINITY属性表示负的Infinity值。

Number.NEGATIVE_INFINITY;
测试看看‹/›

NEGATIVE_INFINITY 溢出返回:

var num = -5 / 0;
测试看看‹/›

POSITIVE_INFINITY属性表示正的Infinity值。

Number.POSITIVE_INFINITY;
测试看看‹/›

POSITIVE_INFINITY 溢出返回:

var num = 5 / 0;
测试看看‹/›

JavaScript NaN-不是数字

NaN属性是一个表示非法的值。

例如,如果您尝试将数字与字符串相乘,则返回的值为“ NaN”。

var ans = 10 * 'Hello';
document.getElementById('result').innerHTML = ans;
测试看看‹/›

数字属性是静态的

数字属性是静态的,您始终将其用作Number.property,而不是作为您创建的Number对象的属性。

例如,在您创建的对象(而不是Number本身)上调用MAX_VALUE将导致未定义的值:

var num = 20;
num.MAX_VALUE;// undefined
测试看看‹/›

完整的数值参考

有关完整的属性和方法参考,请访问我们的JavaScript Number Reference

参考部分包含所有数字属性和方法的描述和示例。

JavaScript菜鸟教程
JavaScript 对象
JavaScript 函数
JS HTML DOM
JS 浏览器BOM
AJAX 菜鸟教程
JavaScript 参考手册