---
title: "IT课程 JavaScript基础 039_类型转换"
date: 2024-09-23T17:00:00.000Z
tags: ["IT课程", "HTML课程", "CSS课程", "JavaScript课程", "Java课程", "计算机系统与网络", "JavaScript数据类型", "JavaScript 类型转换"]
categories: ["学习", "JavaScript基础"]
canonical: https://www.zhaojian.net/it-course-javascript-039/
author: 赵健
---

类型转换是将一个数据类型转换为另一个数据类型的过程。类型转换可以是隐式的（由JavaScript引擎自动完成）或显式的（通过编码进行手动转换）。

### 隐式类型转换（类型强制转换）

在一些操作中，JavaScript会自动进行类型转换，以便进行运算或比较。

示例：

```js
let num = 5 + "5";
console.log(num);  // 输出 "55"，数字和字符串相加，数字被转换为字符串
```

### 显式类型转换

##### 字符串转换

`String()` 函数： 将其他类型转换为字符串。

示例：

```js
let num = 123;
let str1 = String(num);  // String() 函数，可处理 `null` 或 `undefined`
let str2 = num.toString(); // toString() 方法，无法处理 `null` 或 `undefined`
let str3 = num + ""; // 通过与空字符串相加，得到隐式类型转换的字符串
console.log(str1);  // 输出 "123"
console.log(str2);  // 输出 "123"
console.log(str3);  // 输出 "123"
```

##### 数字转换

`Number()` 函数： 将其他类型转换为数字。

示例：

```js
let str1 = "123";
let str2 = "";
let str3 = "aaa";
let num1 = Number(str1);
let num2 = Number(str2);
let num3 = Number(str3);
let num4 = +str1;
console.log(num1);  // 输出 123
console.log(num2);  // 输出 0
console.log(num3);  // 输出 NaN
console.log(num3);  // 输出 123，如果使用-号，输出-123
```

注意：如果字符串不能被解析为有效的数字，结果将是 NaN（Not a Number）。

`parseInt()` 和 `parseFloat()` 函数： 将 **字符串** 转换为整数或浮点数。

示例：

```js
let str = "42";
let num = parseInt(str);
console.log(num);  // 输出 42

let str = "3.14";
let num = parseFloat(str);
console.log(num);  // 输出 3.14
```

##### 布尔值转换

`Boolean()` 函数： 将其他类型转换为布尔值。

示例：

```js
let value = "Hello";
let bool1 = Boolean(value);
let bool2 = !value;
console.log(bool1);  // 输出 true，非空字符串转换为 true
console.log(bool2);  // 输出 true，使用逻辑非对非布尔值隐式转换（!值为false，再使用!!取正）
```

注意：0、NaN、null、undefined、空字符串等（空的、没有的、错误的）会转换为 false，其它值、对象会转换为 true。