本文详解 JavaScript 中将其他数据类型转换为 Number 类型的完整规则。涵盖基本类型如字符串(含空字符串与无效字符处理)、布尔值、null 和 undefined 的转换结果,以及引用数据类型通过 toString() 转为字符串再转数字的机制。结合具体代码示例与面试题解析,帮助开发者准确掌握类型转换细节,避免常见陷阱。
JavaScript 基本类型转换为 Number 的规则
一、基本类型
字符串
将字符串转换为数字时,若字符串中包含任意非有效数字字符(首个小数点除外),结果均为 NaN;空字符串转换为数字则为 0。
console.log(Number("12.5")); //12.5
console.log(Number("12.5px")); //NAN
console.log(Number("12.5.5px"));//NAN
console.log(Number(""));//0
布尔值
console.log(Number(true));//1
console.log(Number(false));//0
console.log(isNaN(false));//false 是有效数字
null 和 undefined
console.log(Number(null));//0
console.log(Number(undefined));//NaN
引用数据类型转换为 Number 的机制
二、引用数据类型
将引用数据类型转换为数字时,首先调用其 toString() 方法将其转换为字符串,然后再将该字符串转换为数字。
console.log(Number({num:"10"}));//NaN
console.log(Number({}));//NaN ({num:"10"}).toString();是"[object Object]" 是非有效数字字符所以是NaN
console.log(Number([]));//0 [].toString()是""所以转为数字是0
console.log(Number([12]));//12 [12].toString()是"12"所以转为数字是12
console.log(Number([12,23]));//NaN [12].toString()是"12,23"里面的","是非有效数字字符所以是NaN
类型转换相关面试题解析
相关面试题
let a=10+null+true+[]+undefined+'腾讯'+null+[]+10+false;
console.log(a)//11undefined腾讯null10false
null 转换为数字是 0,true 转换为数字是 1。对于空数组 [],先经历 toString() 变为空字符串,再转为数字 0。若涉及字符串拼接,则按字符串规则处理。
当去掉 undefined 前面的 [] 后,结果变为 NaN。腾讯 null 10 false 等混合运算需按类型转换规则逐步计算。
以上就是本次介绍的 JavaScript 把其它类型转换为 Number 类型全部知识点内容,感谢大家的学习和对本站的支持。