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翻

相关推荐
郭老二5 分钟前
【Python】基本语法:线程、锁
python
数行拙笔9 分钟前
Redis---set类型
数据库·redis·缓存
小白学大数据15 分钟前
企业内网场景下 Python 自定义 CA 证书信任链的正确配置方法
开发语言·网络·python·信任链
Java面试题总结26 分钟前
使用 Python 在 Excel 中添加和自定义文本框
开发语言·python·excel
Leon-Ning Liu27 分钟前
【真实经验分享】Oradebug抓取阻塞源SQL语句
数据库
观远数据31 分钟前
消费品牌选型BI的能力边界:三类差异化场景的适配清单与排除项
数据库·人工智能·microsoft
TlSfoward40 分钟前
爬虫指纹漂移监控与回归测试:JA3/JA4 变化为什么会影响线上验证 TLSFOWARD
数据库·爬虫·网络协议·搜索引擎
m沐沐1 小时前
【机器学习】基于 dlib 面部关键点的多表情分类
人工智能·python·深度学习·机器学习·计算机视觉·人脸识别·表情识别
cmes_love1 小时前
期货Level2与股票逐笔行情数据有什么,如何下载
数据库·区块链
—Miss. Z—1 小时前
计算机二级MySQL——基本操作题
数据库·mysql·oracle