JavaScript中Number构造函数对各种类型的转换规则

Number构造函数用于类型转换,空字符串转0,布尔值true/false转1/0,null转0、undefined转NaN,对象先调用toString再解析,Symbol和BigInt抛TypeError。Number构造函数在JavaScript中用于将其他类型值转换为数字,其行为与Number()函数一致(不带new时是类型转换,带new时创建包装对象,但日常转换场景几乎只用函数调用形式)。它有一套明确但容易混淆的转换逻辑,核心原则是:尝试解析为有效数字,失败则返回NaN,空字符串和布尔值有特殊处理。字符串转数字的规则字符串会先去除首尾空白,再按数值格式解析:空字符串"" → 0(这是唯一一个非数字字符串转成0的例外) "123"、"-45.6"、" 789 " → 对应数字123、-45.6、789 "0x1F"(十六进制)、"0o77"(八进制)、"0b101"(二进制)→ 分别转为十进制整数31、63、5(仅在严格格式下支持,如无前缀或含非法字符则返回NaN) "123abc"、" 45.6.7 "、"Infinity"(注意:不是小写)→ 全部返回NaN(不识别Infinity或NaN字面量,也不做截断)布尔值、null、undefined的固定映射这些原始值的转换结果是硬编码的,不依赖解析逻辑:true → 1 false → 0 null → 0 undefined → NaN对象(包括数组、日期等)的转换流程对对象调用Number()时,会先调用obj.toString(),再对结果字符串执行上述字符串转换规则: 有道翻译AI助手 有道翻译提供即时免费的中文、英语、日语、韩语、法语、德语、俄语、西班牙语、葡萄牙语、越南语、印尼语、意大利语、荷兰语、泰语全文翻译、网页翻译、文档翻译、PDF翻

相关推荐
秋932 分钟前
ruoyi项目更换为mysql9.7.0数据库
数据库
Andya_net39 分钟前
MySQL | MySQL 8.0 权限管理实践-精确赋予库、表只读等权限
android·数据库·mysql
Cyber4K1 小时前
【Python专项】进阶语法-系统资源监控与数据采集(1)
开发语言·python·php
冷小鱼1 小时前
JVM 异常崩溃排查全指南:从 Core Dump 到根因定位
jvm
筑梦之路2 小时前
harbor数据库报错权限异常如何处理——筑梦之路
数据库·harbor
苍煜2 小时前
Java开发IO零基础吃透:BIO、NIO、同步异步、阻塞非阻塞
java·python·nio
czlczl200209253 小时前
理解 MySQL 行锁:两阶段锁协议与热点更新优化
数据库·mysql
AllData公司负责人3 小时前
通过Postgresql同步到Doris,全视角演示AllData数据中台核心功能效果,涵盖:数据入湖仓,数据同步,数据处理,数据服务,BI可视化驾驶舱
java·大数据·数据库·数据仓库·人工智能·python·postgresql
哆啦A梦15883 小时前
20, Springboot3+vue3实现前台轮播图和详情页的设计
javascript·数据库·spring boot·mybatis·vue3
Flittly4 小时前
【LangGraph新手村系列】(5)时间旅行:浏览历史、分叉时间线与修改过去
python·langchain