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翻
相关推荐
许彰午43 分钟前
28-ORA-01110数据文件读取错误凯凯姜44 分钟前
MySQL 联合索引设计与索引失效猫咪很可爱1 小时前
Oracle TEMP 表空间不足(ORA-01652)问题分析与优化实践外收内放2 小时前
面向对象高级(实战案例)专业程序开发源2 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计FPGA小迷弟2 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整实践指南卷无止境3 小时前
面向arm64桌面客户端开发全景:语言、框架与生态九零HTTP3 小时前
10月21号-CSDN配菜-IP池的5个坑fanruitian3 小时前
python else用法Data-Miner3 小时前
需要做财务数据分析,有什么好用的工具?从准备到出报告的实操指南