早上好,各位! 今天咱们聊聊 JavaScript 里那些“暗箱操作”——类型转换(Coercion)。 别害怕,这玩意听起来玄乎,其实就像魔术,你知道原理了,也就那么回事。 开场白:JavaScript 的 “七十二变” JavaScript 就像个性格多变的演员,同一个值,在不同的场合,可以扮演不同的角色。 比如,数字 5,既可以老老实实当个数字,也可以摇身一变成字符串 “5”。 这就是类型转换在搞鬼。 类型转换分两种: 显式类型转换 (Explicit Coercion): 你主动要求它变。 比如 String(5), Number(“42”)。 隐式类型转换 (Implicit Coercion): JavaScript 偷偷摸摸地帮你变。 比如 5 + “5”, if (0)。 今天咱们重点聊聊这“偷偷摸摸”的隐式类型转换,因为这才是 Bug 的温床,也是面试官最爱挖坑的地方。 第一幕: ToPrimitive – 类型转换的幕后推手 所有类型转换,最终都要落到原始类型(primitive types)上。JavaScript 有七种原始类型: String Number B …
继续阅读“探讨 JavaScript 中 Coercion (类型转换) 的隐式和显式规则,特别是涉及 ToPrimitive, ToString, ToNumber 等内部操作的转换逻辑。”