title: QD1-45 JS 类型转换(3)显式转换
description: 介绍 JavaScript 显示类型转换
video: [https://www.bilibili.com/video/BV1n64y1U7oj?p=45](https://www.bilibili.com/video/BV1n64y1U7oj?p=45)
subject:前端学习笔记 1
JavaScript 的显式类型转换:通过调用转换函数或运算符,将一种数据类型手动转换为另一种数据类型。
显式转换的优点:
- 避免隐式转换陷阱
- 增强代码可读性
以下为常见的显式类型转换方式:
// 1. String(value) - 将其他类型转换为字符串
let num = 123;
let str = String(num); // "123"
// 2. Number(value) - 将其他类型转换为数字 (非数字字符将导致 NaN)
let strNum = "456";
let numFromString = Number(strNum); // 456
// 3. Boolean(value) - 将其他类型转换为布尔值
let value = 0;
let boolValue = Boolean(value); // false
// 4. parseInt(str) - 将字符串转换为整数
let strWithPx = "789px";
let intValue = parseInt(strWithPx); // 789
// 5. parseFloat(str) - 将字符串转换为浮点数
let floatStr = "123.45px";
let floatValue = parseFloat(floatStr); // 123.45
// 6. num.toString() - 将数字、布尔值等转换为字符串
let numForToString = 123;
let strFromNum = numForToString.toString(); // "123"
// 7. num.toFixed(小数点精度) - 将数字转换为字符串并保留指定的小数位数
let numForFixed = 123.456;
let strWithPrecision = numForFixed.toFixed(2); // "123.46"
// 8. JSON.stringify(obj) - 将对象、数组等转换为 JSON 格式的字符串
let obj = {
name: "John", age: 30 };
let jsonString = JSON.stringify(obj); // '{"name":"John","age":30}'
// 回顾-隐式类型转换
// 加法运算 (+) 会将数字转换为字符串
let resultAddition = 1 + "2"; // "12"
// 相等运算符 (==) 可能触发隐式转换
let resultComparison = "5" == 5; // true
TIPS
对象的toString()函数
- 可以处理:数字,字符串,NaN,布尔值
- 不可以处理:null、undefined
全局String()函数
- 可以处理全部:数字,字符串,NaN,布尔值、null、undefined
TIPS
提取出字符串开头的数值
-
parseInt()
会将字符串转换为整数,忽略小数部分。-
parseFloat()
可以处理小数。console.log(parseInt("55个人")); //输出 55 console.log(parseInt("吃了30斤葡萄")); //输出 NaN console.log(parseInt("50斤猪肉")); //输出 50 console.log(parseFloat("66.6斤白菜")); //输出66.6 console.log(parseFloat("2024.10.18记录")); //输出2024.1
TIPS
toFixed指定保留小数的位数,不完全符合四舍五入。超过等于5不能舍入,必须超过5。
var data2 = 1.15; console.log(data2.toFixed(1)); //输出 1.1 data3 = 1.151; console.log(data3.toFixed(1)); //输出 1.2
TIPS
任何非空字符串和非零数字都将转换为
true
,而空字符串 (""
)、0
、NaN
、null
和undefined
将转换为false
。
TIPS
可以使用一元加号
+
将字符串转换为数字:let str = "123"; let num = +str; // 123
TIPS
使用双重否定
!!
可以快速将值转换为布尔类型:let val = 0; let bool = !!val; // false