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翻

相关推荐
2301_815279522 小时前
golang如何使用struct嵌套_golang struct结构体嵌套使用方法
jvm·数据库·python
m0_748920362 小时前
如何优化SQL长文本字段查询_通过选择性返回减少IO消耗
jvm·数据库·python
HHHHH1010HHHHH2 小时前
SQL处理大规模分组聚合的内存限制_调整服务器配置
jvm·数据库·python
2301_777599372 小时前
CSS如何让最后一个元素靠右显示_利用margin-left-auto技巧
jvm·数据库·python
吕源林2 小时前
golang如何实现Apple Pay集成_golang Apple Pay集成实现教程
jvm·数据库·python
玩大数据的龙威2 小时前
农经权二轮延包—付费软件插件与免费软件插件汇总
python·arcgis
21439652 小时前
Golang slice扩容机制原理_Golang切片扩容教程【高效】
jvm·数据库·python
JoshRen2 小时前
Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)
数据库·redis·缓存
吕源林2 小时前
HTML图片怎么用UnoCSS对齐_UnoCSS原子化CSS图片对齐实战
jvm·数据库·python