JavaScript 类型转换

在编程中,类型转换是将一种 类型 的数据转换为另一种类型的过程。例如,将 字符串 数据转换为 数字

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 中不同值到 StringNumberBoolean 的转换。

字符串转换 数字转换 布尔值转换
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 代码中出现意外结果至关重要。

以下是一些要点:

  1. 当涉及二元 + 运算符时,如果一个操作数是字符串,JavaScript 会将另一个操作数(数字)转换为字符串进行连接。
  2. 逻辑运算会将操作数转换为布尔值。
  3. 当从一个字符串减去另一个字符串时,JavaScript 会尝试将两个字符串都转换为数字。
  4. 当您更改对象的类型时,可能会丢失一些数据。

另请阅读

在我们结束之前,让我们来测试一下您对 JavaScript 类型转换的掌握程度!您能解决以下挑战吗?

挑战

编写一个连接两个字符串的函数。

  • 给定两个输入字符串(str1str2),返回连接后的字符串。
  • 例如,如果 str1 = "Hello, " 并且 str2 = "World!",则预期输出为 "Hello, World!"

视频:JavaScript 运算符

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战