javaScript基础用Number()把其它类型转换为Number类型
js在做加法运算时会隐式调用Number()方法
一:基本类型
字符串
把字符串转换为数字,只要字符串中包含任意一个非有效数字字符(第一个点除外)结果都是NaN,空字符串会变为数字零
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可以转为0 是有效数字
null和undefined
console.log(Number(null));//0 console.log(Number(undefined));//NaN
二:引用数据类型
把引用数据类型转换为数字是先把它基于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"
上面的面试题会隐式调用Number(),null变为数字是0,true是1,[]变为数字,先要经历变为空字符串,遇到字符串,啥也别想了,直接变为字符串拼接.所以结果是字符串"11undefined腾讯null10false"
当去掉undefined前面的[]结果就变成了NaN腾讯null10false
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2018-10-13 用JavaScript实现div的鼠标拖拽效果