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 分钟前
归档模式配置与切换卡次卡次117 分钟前
vibecoding起步注意点:插件、Skills、MCP、HooksElastic 中国社区官方博客19 分钟前
每次操作一个 API 调用:Elastic Cloud Hosted 如何让大规模部署管理变得可行清溪54926 分钟前
pgAdmin4 <= 9.1_RCE(CVE-2025-2945)复现我的xiaodoujiao26 分钟前
API 接口自动化测试详细图文教程学习系列24--如何用Pytest去设计接口测试用例并执行清溪54941 分钟前
pgAdmin4后台Restore RCE(CVE-2025-13780)复现zhangfeng11331 小时前
ai 模型加密,强化版终极防盗方案 支持烧录的显卡列表半个落月1 小时前
深入理解 Python dict 与 set:从哈希表底层到高性能实战带派擂总1 小时前
Python全栈开发 Day10_用户管理系统databook1 小时前
用 SymPy 解决 Manim 曲线绘制速度不均的问题