QD1-45 JS 类型转换(3)显式转换

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