这些数字方法可用于所有 JavaScript 数字:
以字符串形式返回数字
返回以指数表示法书写的数字
返回用多个小数位书写的数字
返回以指定长度写入的数字
返回一个数字作为数字
toString()
方法以字符串形式返回数字。
所有数字方法都可以用于任何类型的数字(文字、变量或表达式):
let x = 123;
x.toString();
(123).toString();
(100 + 23).toString();
自己尝试一下→
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Number Methods</h2>
<p>The toString() method converts a number to a string.</p>
<p id="demo"></p>
<script>
let x = 123;
document.getElementById("demo").innerHTML =
x.toString() + "<br>" +
(123).toString() + "<br>" +
(100 + 23).toString();
</script>
</body>
</html>
toExponential()
返回一个字符串,其中数字四舍五入并使用指数表示法书写。
参数定义小数点后面的字符数:
let x = 9.656;
x.toExponential(2);
x.toExponential(4);
x.toExponential(6);
该参数是可选的。如果您不指定它,JavaScript 将不会对数字进行四舍五入。
toFixed()
返回一个字符串,其中包含数字 写有指定数量的 小数点:
let x = 9.656;
x.toFixed(0);
x.toFixed(2);
x.toFixed(4);
x.toFixed(6);
toFixed(2)
非常适合与金钱打交道。
toPrecision()
返回一个字符串,其中包含一个用 指定长度:
let x = 9.656;
x.toPrecision();
x.toPrecision(2);
x.toPrecision(4);
x.toPrecision(6);
自己尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Number Methods</h2>
<p>The toPrecision() method returns a string, with a number written with a specified length:</p>
<p id="demo"></p>
<script>
let x = 9.656;
document.getElementById("demo").innerHTML =
x.toPrecision() + "<br>" +
x.toPrecision(2) + "<br>" +
x.toPrecision(4) + "<br>" +
x.toPrecision(6);
</script>
</body>
</html>
valueOf()
返回一个数字作为数字。
let x = 123;
x.valueOf();
(123).valueOf();
(100 + 23).valueOf();
自己尝试一下→
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Number Methods</h2>
<p>The valueOf() method returns a number as a number:</p>
<p id="demo"></p>
<script>
let x = 123;
document.getElementById("demo").innerHTML =
x.valueOf() + "<br>" +
(123).valueOf() + "<br>" +
(100 + 23).valueOf();
</script>
</body>
</html>
在 JavaScript 中,数字可以是原始值(typeof=number)或 对象(类型=对象)。
valueOf()
方法在 JavaScript 内部用于转换 Number 对象到原始值。
没有理由在您的代码中使用它。
所有 JavaScript 数据类型都有一个 valueOf()
和一个 toString()
方法。
可以使用 3 个 JavaScript 方法 将变量转换为数字:
返回从其参数转换而来的数字。
解析其参数并返回一个浮点数
解析其参数并返回一个整数
上面的方法不是数字方法。它们是全局 JavaScript 方法。
Number()
方法可用于将 JavaScript 变量转换为数字:
Number(true);
Number(false);
Number("10");
Number(" 10");
Number("10 ");
Number(" 10 ");
Number("10.33");
Number("10,33");
Number("10 33");
Number("John");
自己尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Global Methods</h2>
<p>The Number() method converts variables to numbers:</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
Number(true) + "<br>" +
Number(false) + "<br>" +
Number("10") + "<br>" +
Number(" 10") + "<br>" +
Number("10 ") + "<br>" +
Number(" 10 ") + "<br>" +
Number("10.33") + "<br>" +
Number("10,33") + "<br>" +
Number("10 33") + "<br>" +
Number("John");
</script>
</body>
</html>
如果数字无法转换,则返回 NaN
(不是数字)。
Number()
还可以将日期转换为数字。
Number(new Date("1970-01-01"))
自己尝试一下→
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Global Methods</h2>
<p>The Number() method can convert a date to a number:</p>
<p id="demo"></p>
<script>
let x = new Date("1970-01-01");
document.getElementById("demo").innerHTML = Number(x);
</script>
</body>
</html>
Date()
方法返回自 1.1.1970 以来的毫秒数。
1970-01-02 和 1970-01-01 之间的毫秒数是 86400000:
Number(new Date("1970-01-02"))
自己尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Global Methods</h2>
<p>The Number() method can convert a date to a number:</p>
<p id="demo"></p>
<script>
let x = new Date("1970-01-02");
document.getElementById("demo").innerHTML = Number(x);
</script>
</body>
</html>
Number(new Date("2017-09-30"))
自己尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Global Methods</h2>
<p>The Number() method can convert a date to a number:</p>
<p id="demo"></p>
<script>
let x = new Date("2017-09-30");
document.getElementById("demo").innerHTML = Number(x);
</script>
</body>
</html>
parseInt()
解析字符串并返回整数。空格是 允许。仅返回第一个数字:
parseInt("-10");
parseInt("-10.33");
parseInt("10");
parseInt("10.33");
parseInt("10 20 30");
parseInt("10 years");
parseInt("years 10");
如果数字无法转换,则返回 NaN
(不是数字)。
parseFloat()
解析字符串并返回数字。空格是 允许。仅返回第一个数字:
parseFloat("10");
parseFloat("10.33");
parseFloat("10 20 30");
parseFloat("10 years");
parseFloat("years 10");
如果数字无法转换,则返回 NaN
(不是数字)。
这些对象方法属于Number对象:
如果参数是整数,则返回 true
如果参数是安全整数,则返回 true
将字符串转换为数字
将字符串转换为整数
上面的数字方法属于 JavaScript 数字对象。
这些方法只能像 Number.isInteger()
一样访问。
使用 X.isInteger()(其中 X 是变量)将导致错误:
TypeError X.isInteger 不是函数
。
如果参数是整数,则 Number.isInteger()
方法返回 true
。
Number.isInteger(10);
Number.isInteger(10.5);
自己尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>
<h2>The isInteger() Method</h2>
<p>The isInteger() method returns true if the argument is an integer.</p>
<p>Otherwise it returns false.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
Number.isInteger(10) + "<br>" + Number.isInteger(10.5);
</script>
</body>
</html>
安全整数是可以精确表示为双精度数的整数。
如果参数是安全整数,则 Number.isSafeInteger()
方法返回 true
。
Number.isSafeInteger(10);
Number.isSafeInteger(12345678901234567890);
自己尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>
<h2>The isSafeInteger() Method</h2>
<p>The isSafeInteger() method returns true if the argument is a safe integer.</p>
<p>Otherwise it returns false.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
Number.isSafeInteger(10) + "<br>" + Number.isSafeInteger(12345678901234567890);
</script>
</body>
</html>
安全整数是从 -(253 - 1) 到 +(253 - 1) 的所有整数。
这是安全的:9007199254740991。这是不安全的:9007199254740992。
Number.parseFloat()
解析字符串并返回数字。
允许有空格。仅返回第一个数字:
Number.parseFloat("10");
Number.parseFloat("10.33");
Number.parseFloat("10 20 30");
Number.parseFloat("10 years");
Number.parseFloat("years 10");
如果数字无法转换,则返回 NaN
(不是数字)。
Number 方法 Number.parseInt()
和 Number.parseFloat()
与
相同 全局方法parseInt()
和parseFloat()
。
目的是全局变量的模块化(以便更容易在浏览器之外使用相同的 JavaScript 代码)。
Number.parseInt()
解析字符串并返回整数。
允许有空格。仅返回第一个数字:
Number.parseInt("-10");
Number.parseInt("-10.33");
Number.parseInt("10");
Number.parseInt("10.33");
Number.parseInt("10 20 30");
Number.parseInt("10 years");
Number.parseInt("years 10");
如果数字无法转换,则返回 NaN
(不是数字)。
如需完整的编号参考,请访问我们的:
完整的 JavaScript 数字参考。
该参考包含所有 Number 属性和方法的描述和示例。