在编程中,类型转换是将一种 类型 的数据转换为另一种类型的过程。例如,将 字符串 数据转换为 数字。
JavaScript 中有两种类型的类型转换:
- 隐式转换 - 自动类型转换。
- 显式转换 - 手动类型转换。
JavaScript 隐式转换
在某些情况下,JavaScript 会自动将一种类型的数据转换为另一种类型(正确的类型)。这就是所谓的隐式转换。例如,
// numeric string used with + gives string type
let result;
// convert number to string
result = "3" + 2;
console.log(result, "-", typeof(result));
result = "3" + true;
console.log(result, "-", typeof(result));
result = "3" + null;
console.log(result, "-", typeof(result));
输出
32 - string 3true - string 3null - string
在此示例中,我们使用 +
运算符 结合字符串和其他数据类型进行了隐式类型转换。
这里,
"3" + 2
- 将数字 2 转换为字符串,并将其连接到"3"
,结果为字符串"32"
。"3" + true
- 将 布尔值true
转换为字符串,并将其连接到"3"
,结果为字符串"3true"
。"3" + null
- 将 null 转换为字符串,并将其连接到"3"
,结果为字符串"3null"
。
注意:typeof 运算符会返回变量的数据类型。
JavaScript 显式转换
在显式类型转换中,您可以使用 内置函数 手动将一种数据类型转换为另一种数据类型。例如,
let result;
// convert string to number
result = Number("5");
console.log(result, "-", typeof(result));
// convert boolean to string
result = String(true);
console.log(result, "-", typeof(result));
// convert number to boolean
result = Boolean(0);
console.log(result, "-", typeof(result));
输出
5 - number true - string false - boolean
这里,
- Number("5") 将字符串
"5"
转换为数字 5。 - String(true) 将布尔值
true
转换为字符串"true"
。 - Boolean(0) 将数字 0 转换为布尔值
false
,因为在 JavaScript 中,0 被认为是 假值。
更多关于 JavaScript 类型转换
隐式转换为数字
当您在数值字符串中使用算术运算符(如 -
、*
或 /
)时,JavaScript 会自动将这些字符串转换为数字。
让我们看一个例子。
// numeric string used with - , / , *
// results in number type
let result;
result = "4" - "2";
console.log(result, "-", typeof(result));
result = "4" - 2;
console.log(result, "-", typeof(result));
result = "4" * 2;
console.log(result, "-", typeof(result));
result = "4" / 2;
console.log(result, "-", typeof(result));
输出
2 - number 2 - number 8 - number 2 - number
JavaScript 类型转换表
该表显示了 JavaScript 中不同值到 String
、Number
和 Boolean
的转换。
值 | 字符串转换 | 数字转换 | 布尔值转换 |
---|---|---|---|
1 |
"1" |
1 |
true |
0 |
"0" |
0 |
false |
"1" |
"1" |
1 |
true |
"0" |
"0" |
0 |
true |
"ten" |
"ten" |
NaN |
true |
true |
"true" |
1 |
true |
false |
"false" |
0 |
false |
null |
"null" |
0 |
false |
undefined |
"undefined" |
NaN |
false |
'' |
"" |
0 |
false |
' ' |
" " |
0 |
true |
类型转换规则
理解类型转换的规则对于避免 JavaScript 代码中出现意外结果至关重要。
以下是一些要点:
- 当涉及二元
+
运算符时,如果一个操作数是字符串,JavaScript 会将另一个操作数(数字)转换为字符串进行连接。 - 逻辑运算会将操作数转换为布尔值。
- 当从一个字符串减去另一个字符串时,JavaScript 会尝试将两个字符串都转换为数字。
- 当您更改对象的类型时,可能会丢失一些数据。
另请阅读