将字符串转换为数字
将数字转换为字符串
将日期转换为数字
将数字转换为日期
将布尔值转换为数字
将数字转换为布尔值
JavaScript 变量可以转换为新变量和另一种数据类型:
通过使用 JavaScript 函数
由 JavaScript 本身自动
全局方法 Number()
将变量(或值)转换为数字。
数字字符串(如“3.14”)转换为数字(如 3.14)。
空字符串(如“”)会转换为 0。
非数字字符串(如“John”)转换为 NaN
(非数字)。
这些将转换:
Number("3.14")
Number(Math.PI)
Number(" ")
Number("")
这些不会转换:
Number("99 88")
Number("John")
自己尝试一下→
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>
<h2>The Number() Method</h2>
<p>The Number() metod converts a variable (or value) into a number:</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
Number("3.14") + "<br>" +
Number(Math.PI) + "<br>" +
Number(" ") + "<br>" +
Number("") + "<br>" +
Number("99 88") + "<br>" +
Number("John") + "<br>";
</script>
</body>
</html>
在数字方法一章中,您 会发现更多可用于将字符串转换为 数字:
描述
返回一个从其参数转换而来的数字
解析字符串并返回浮点数
解析一个字符串并返回一个整数
一元 + 运算符可用于 将变量转换为数字:
let y = "5";
// y is a string
let x = + y;
// x is a number
自己尝试一下→
<!DOCTYPE html>
<html>
<body>
<h2>The JavaScript typeof Operator</h2>
<p>The typeof operator returns the type of a variable or expression:</p>
<p id="demo"></p>
<script>
let y = "5";
let x = + y;
document.getElementById("demo").innerHTML = typeof y + "<br>" + typeof x;
</script>
</body>
</html>
如果 变量无法转换,它仍然会变成数字,但值为 NaN
(不是数字):
let y = "John";
// y is a string
let x = + y; // x is a number (NaN)
自己尝试一下→
<!DOCTYPE html>
<html>
<body>
<h2>The JavaScript typeof Operator</h2>
<p>The typeof operator returns the type of a variable or expression:</p>
<p id="demo"></p>
<script>
let y = "John";
let x = + y;
document.getElementById("demo").innerHTML = typeof y + "<br>" + typeof x;
</script>
</body>
</html>
全局方法 String()
可以将数字转换为字符串。
它可以用于任何类型的数字、文字、变量或表达式:
String(x) // returns a string from a number variable x
String(123) // returns a string from a number literal 123
String(100 + 23) // returns a string from a number from an expression
自己尝试一下→
<!DOCTYPE html>
<html>
<body>
<h2>The JavaScript String() Method</h2>
<p>The String() method can convert a number to a string.</p>
<p id="demo"></p>
<script>
let x = 123;
document.getElementById("demo").innerHTML =
String(x) + "<br>" +
String(123) + "<br>" +
String(100 + 23);
</script>
</body>
</html>
Number 方法 toString()
执行相同的操作。
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>
在数字方法一章中,您 会发现更多可用于将数字转换为 字符串:
返回一个字符串,其中数字四舍五入并使用指数表示法书写。
返回一个字符串,其中数字四舍五入并以指定的小数位数书写。
返回一个字符串,其中包含指定长度的数字
全局方法 Number()
可用于将日期转换为 数字。
d = new Date();
Number(d) // returns 1404568027739
日期方法 getTime()
执行相同的操作。
d = new Date();
d.getTime() // returns 1404568027739
全局方法 String()
可以将日期转换为 字符串。
String(Date()) // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
Date 方法 toString()
执行相同的操作。
Date().toString() // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
在日期方法一章中,您 会发现更多可用于将日期转换为 字符串:
获取数字形式的日期 (1-31)
获取工作日的数字 (0-6)
获取四位数年份 (yyyy)
获取小时 (0-23)
获取毫秒(0-999)
获取分钟 (0-59)
获取月份 (0-11)
获取秒数 (0-59)
获取时间(自 1970 年 1 月 1 日以来的毫秒数)
全局方法 Number()
也可以将布尔值转换为数字。
Number(false) // returns 0
Number(true) // returns 1
全局方法 String()
可以将布尔值转换为 字符串。
String(false) // returns "false"
String(true) // returns "true"
布尔方法 toString()
执行相同的操作。
false.toString() // returns "false"
true.toString() // returns "true"
当 JavaScript 尝试操作“错误”的数据类型时,它会尝试 将值转换为“正确”类型。
结果并不总是你所期望的:
5 + null // returns 5 because null is converted to 0
"5" + null // returns "5null" because null is converted to "null"
"5" + 2 // returns
"52" because 2 is converted to "2"
"5" - 2 // returns 3 because "5" is converted to 5
"5" * "2" // returns
10 because "5" and "2" are
converted to 5 and 2
自己尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
(5 + null) + "<br>" +
("5" + null) + "<br>" +
("5" + 2) + "<br>" +
("5" - 2) + "<br>" +
("5" * "2") + "<br>" +
("5" / "2") + "<br>"
</script>
</body>
</html>
当您尝试时,JavaScript 会自动调用变量的 toString()
函数 “输出”一个对象或变量:
document.getElementById("demo").innerHTML = myVar;
// if myVar = {name:"Fjohn"} // toString converts to "[object Object]"
// if myVar = [1,2,3,4] // toString converts to "1,2,3,4"
// if myVar = new Date() // toString converts to "Fri Jul 18 2014 09:08:55 GMT+0200"
数字和布尔值也会被转换,但这不是很明显:
// if myVar = 123 // toString converts to "123"
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
下表显示了将不同 JavaScript 值转换为数字、字符串和布尔值的结果:
原始值:
false
转换为数字:
0
转换为字符串:
"false"
转换为布尔值:
false
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting false to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = false;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
true
转换为数字:
1
转换为字符串:
"true"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting true to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = true;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
0
转换为数字:
0
转换为字符串:
"0"
转换为布尔值:
false
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the number 0 to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = 0;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
1
转换为数字:
1
转换为字符串:
"1"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the number 1 to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = 1;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
"0"
转换为数字:
0
转换为字符串:
"0"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the string "0" to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "0";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
"000"
转换为数字:
0
转换为字符串:
"000"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the string "000" to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "000";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
"1"
转换为数字:
1
转换为字符串:
"1"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the string "1" to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = 1;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
NaN
转换为数字:
NaN
转换为字符串:
"NaN"
转换为布尔值:
false
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting NaN to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = NaN;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
Infinity
转换为数字:
Infinity
转换为字符串:
"Infinity"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting Infinity to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = Infinity;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
-Infinity
转换为数字:
-Infinity
转换为字符串:
"-Infinity"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting -Infinity to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = -Infinity;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
""
转换为数字:
0
转换为字符串:
""
转换为布尔值:
false
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting an empty string to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
"20"
转换为数字:
20
转换为字符串:
"20"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting a numeric string to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "20";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
NaN
转换为数字:
"twenty"
转换为字符串:
"twenty"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting a text string to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "twenty";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
[ ]
转换为数字:
0
转换为字符串:
""
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<p>Converting an empty array to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = [];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
[20]
转换为数字:
20
转换为字符串:
"20"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<p>Converting an array with one numeric element to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = [20];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
[10,20]
转换为数字:
NaN
转换为字符串:
"10,20"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<p>Converting an array with two numeric elements to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = [10,20];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
["twenty"]
转换为数字:
NaN
转换为字符串:
"twenty"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<p>Converting an array with one string element to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = ["twenty"];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
["ten","twenty"]
转换为数字:
NaN
转换为字符串:
"ten,twenty"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<p>Converting an array with two string element to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = ["ten","twenty"];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
function(){}
转换为数字:
NaN
转换为字符串:
"function(){}"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting a function to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
const x = function(){};
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
{ }
转换为数字:
NaN
转换为字符串:
"[object Object]"
转换为布尔值:
true
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting an object to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
const x = {};
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
null
转换为数字:
0
转换为字符串:
"null"
转换为布尔值:
false
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting null to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = null;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
原始值:
undefined
转换为数字:
NaN
转换为字符串:
"undefined"
转换为布尔值:
false
尝试一下 →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting undefined to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = undefined;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
引号中的值表示字符串值。
红色值表示(某些)程序员可能不期望的值。