类型转换
类型转换分显式转换(自己调用函数,推荐)和隐式转换(JS 自动转,容易出 bug)。显式转换的常用函数:Number()、String()、Boolean()、parseInt()、parseFloat()。
转布尔值时只有 6 个「假值」会变成 false:false、0、''(空字符串)、null、undefined、NaN,其余全是真值——注意 '0' 和 [] 都是真值。
最危险的隐式转换发生在 == 上:它比较前会偷偷转类型,导致 1 == '1' 为 true。所以永远用 === 严格相等。另外 + 号遇到字符串会转成拼接,- 号则会尝试转数字做减法,规则不一致要特别小心。
本节要点记住 6 个假值;+ 遇字符串变拼接;永远用 === 代替 ==;表单拿到的值都是字符串,运算前要 Number() 转换。
JavaScript
// 显式转换:用函数明确地转 console.log(Number('123')); // 123 console.log(Number('12px')); // NaN:转不动 console.log(parseInt('12px')); // 12:从头解析数字 console.log(String(123)); // '123' console.log(Boolean(0)); // false // 6 个假值:false 0 '' null undefined NaN console.log(Boolean('')); // false console.log(Boolean('0')); // true(非空字符串都是真值) console.log(Boolean([])); // true(空数组也是真值) // 隐式转换:+ 遇到字符串就拼接 console.log(1 + '2'); // '12' console.log('5' - 2); // 3(减号会转数字) console.log('5' * '2'); // 10 // == 会先转类型再比较,永远别用 console.log(1 == '1'); // true(危险!) console.log(1 === '1'); // false(推荐) console.log(NaN === NaN); // false(NaN 不等于任何值)
📚 推荐阅读
来自万象云档的免费在线书籍,点击封面直接阅读




