JS显式类型转换是主动调用函数或操作符的可控转换。转字符串推荐String()、模板字面量;转数字首选Number(),parseInt/parseFloat用于提取;转布尔用Boolean()最清晰。

JS 中显式类型转换就是你主动调用函数或操作符,把一个值明确转成另一种类型。它可控、可预测,是日常开发中最推荐的方式。
转字符串的三种稳妥写法
最常用也最安全的是 String(),它能处理所有原始值,包括 null 和 undefined:
-
String(123)→"123" -
String(true)→"true" -
String(null)→"null" -
String(undefined)→"undefined"
.toString() 效果类似,但对 null 和 undefined 会直接报错,不能用:
-
(123).toString()→"123" -
(true).toString()→"true" -
null.toString()→ TypeError
模板字面量 `${value}` 行为等同于 String(value),语义清晰且安全。
转数字的三个主力方法
Number() 是最严格、最推荐的通用转换:
-
Number("42")→42 -
Number(" 42 ")→42(自动去首尾空格) -
Number("")→0(注意:空字符串不是 NaN) -
Number("abc")→NaN -
Number(null)→0(反直觉但规范如此) -
Number(undefined)→NaN
parseInt(str, radix) 不是类型转换函数,而是“从开头提取整数”,必须传进制参数才可靠:
-
parseInt("42px", 10)→42 -
parseInt("0x2A", 16)→42 -
parseInt("08", 10)→8(避免老引擎按八进制解析)
parseFloat(str) 类似,专用于提取浮点数,只支持十进制:
-
parseFloat("3.14em")→3.14 -
parseFloat(" 2.5e-1 ")→0.25
转布尔值:Boolean() 最清晰
Boolean() 直接返回 true 或 false,逻辑明确:
-
Boolean(0)→false -
Boolean("")→false -
Boolean([])→true(空数组不是 falsy) -
Boolean({})→true -
Boolean("false")→true(非空字符串恒为 true)
!!value 和 Boolean(value) 完全等价,但后者语义更直白;不要用 new Boolean(false),它返回的是对象,隐式转布尔仍是 true。











