在上一章中,我们已经学习了数字的基础知识,让我们前进一步,开始考虑可以使用内置方法和属性对数字执行哪些有用的操作。
原始值,例如(25或3.14),不能具有属性或方法(因为它们不是对象)。
但是在JavaScript中,方法和属性也可用于原始值,因为JavaScript在执行方法和属性时会将原始值视为对象。
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()方法使用定点表示法格式化数字。
此方法返回的值是一个字符串,并且在小数点后有确切指定的位数。
var num = 12.525; num.toFixed(); // 返回 13 num.toFixed(2); // 返回 12.53 num.toFixed(4); // 返回 12.5250 num.toFixed(6); // 返回 12.525000测试看看‹/›
如果需要,数字会四舍五入,如果需要,小数部分将用零填充,以便具有指定的长度。
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()方法返回一个表示指定数字的字符串。
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()方法返回数字的原始值。
var x = new Number(50); typeof x.valueOf(); // 返回数字(而不是对象)测试看看‹/›
在JavaScript中,数字可以是原始值或对象。
该valueOf()方法在JavaScript中用于将Number对象转换为原始值。
有3个JavaScript 全局函数可用于将变量转换为数字:
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()函数解析一个字符串,并返回一个整数。
当您处理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("12.25"); // 返回 12.25 parseFloat("5.6em"); // 返回 5.6 parseFloat("80.5 kg");// 返回 80.5 parseFloat("weight 80.5 kg"); // 返回 NaN测试看看‹/›
如果第一个字符不能转换为数字,则返回NaN。
下表列出了Number对象的属性:
属性 | 描述 |
---|---|
MAX_VALUE | 返回JavaScript中可能的最大数字 |
MIN_VALUE | 返回JavaScript中可能的最小数字 |
NEGATIVE_INFINITY | 表示负无穷大(溢出时返回) |
POSITIVE_INFINITY | 表示无穷大(溢出时返回) |
NaN | 代表“非数字”值 |
注意:Number的所有属性都是静态的,您始终将其用作Number.property,而不是作为您创建的Number对象的属性。
该MAX_VALUE属性表示JavaScript中可表示的最大数值。
Number.MAX_VALUE;测试看看‹/›
该MIN_VALUE属性表示JavaScript中可表示的最小正数值。
Number.MIN_VALUE;测试看看‹/›
该NEGATIVE_INFINITY属性表示负的Infinity值。
Number.NEGATIVE_INFINITY;测试看看‹/›
NEGATIVE_INFINITY 溢出返回:
var num = -5 / 0;测试看看‹/›
该POSITIVE_INFINITY属性表示正的Infinity值。
Number.POSITIVE_INFINITY;测试看看‹/›
POSITIVE_INFINITY 溢出返回:
var num = 5 / 0;测试看看‹/›
该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。
参考部分包含所有数字属性和方法的描述和示例。