当前位置: 首页 > news >正文

为什么 123.toString() 不会报错?揭秘 JavaScript Number 的隐藏魔法

前几天,我和朋友在咖啡馆聊天。他突然问我一句:“小米,你不是天天写 JavaScript 吗?我一直有个问题。”

我喝了口咖啡:“说。”

他说:“为什么 123.toString() 可以用?数字不是原始值吗?原始值不是没有方法吗?”

我愣了一秒,笑了。这就像你手里拿着一枚普通硬币,结果突然发现它能变成一把瑞士军刀。

今天我们就来聊聊JavaScript 的原始值包装类型:Number。这背后的机制,其实非常有意思。

原始值:看起来很普通的数字

在 JavaScript 里,最常见的数字就是:let num=123;

123 是什么?它属于原始值(Primitive Value)

JavaScript 一共有 7 种原始值:

  • Number
  • String
  • Boolean
  • Null
  • Undefined
  • Symbol
  • BigInt

这些原始值有一个共同特点:它们不是对象。也就是说理论上:

  • 没有属性
  • 没有方法
  • 只是简单的数据

如果按常理来说,这样的代码应该报错:

因为num 只是数字,不是对象。但神奇的是它居然能运行。为什么?

这就要讲到 JavaScript 的一个“魔法机制”。

神奇的包装对象

JavaScript 设计者做了一件非常聪明的事情。当你对原始值调用方法时:JavaScript 会临时创建一个对象来包装这个值

流程大概是这样:

举个例子:

http://www.jsqmd.com/news/457165/

相关文章:

  • QModMaster:工业级ModBus通信的开源解决方案
  • 计算机毕业设计java基于vue的健身房信息管理系统基于SpringBoot+Vue的健身房智慧运营综合管理平台设计健身俱乐部会员课程与场地预约一体化管理系统的研发
  • linux 服务器支持的 TCP 连接数上限及配置优化
  • 零门槛打造全场景智能助手:QQBot个性化自动化实践指南
  • 突破音乐枷锁:qmcdump让QQ音乐加密文件重获自由
  • 有没有适合初学者使用的低代码/无代码Agent开发工具?新手入门全指南
  • 一文说清:AI认证一级 vs 二级,难度、侧重点、适用人群全对比
  • 2026上海宠物皮肤科医院怎么挑?看这篇指南就够了,异宠医院/母猫绝育/狗狗绝育/母狗绝育,宠物皮肤科医生找哪家 - 品牌推荐师
  • QMC音频解密工具:3步解锁加密音乐文件
  • 全面解析:面向职场效率提升的AI等级认证,考试题型与考查重点揭秘
  • 2026安防防护门优质厂家推荐指南:后方洞库大门、复合式枪弹库门、室内现金岛、室外现金岛、文物库房金库门选择指南 - 优质品牌商家
  • 【优化求解】基于扰动调制光感实现智能光分配的占位分布估算Matlab代码
  • EdgeRemover:系统化清除Windows Edge浏览器的安全解决方案
  • 2026年如家礼品卡回收价格深度解析:你的闲置酒店卡还值多少钱? - 京回收小程序
  • 低温粉碎机怎么选?三大国产实力制造商深度测评 - 品牌推荐大师
  • 选购DIY挂饰卡圈书圈,哪个厂家口碑好 - 工业品牌热点
  • 【图像加密】基于混沌和秩交织的有效图像加密算法 质数因子 + 时间种子 + 异或运算附matlab代码
  • 【实时Linux工业PLC解决方案系列】第二十五篇 - 实时Linux PLC电源管理优化
  • “箭头函数的设计初衷是简化回调、绑定词法 this”的补充说明
  • 捷运达加拿大清关行专业不,在浙江口碑好不好 - myqiye
  • geekez指纹生成脚本
  • 5大核心功能节省80%重复操作:BetterGI智能辅助工具全解析
  • 2026年高薪赛道盘点:这10类岗位年薪百万起步,小白程序员如何精准收藏抢占先机?
  • 日本无需进口任何部件,悄悄建造了一台量子计算机
  • 想了解oa系统操作教程视频,通达信科有免费资源吗? - 工业推荐榜
  • AI 智能体重塑软件工程:从代码风格到开发经济的变革
  • OpenAI称Codex Security一个月内发现1.1万个高危漏洞
  • 【实时Linux工业PLC解决方案系列】第二十六篇 - 实时Linux PLC抗干扰优化方案
  • 编程语言格局大洗牌:Ruby 暴跌,多语言位次变动背后的隐情
  • 2026年内蒙古地区腐植酸钠专业制造商排名,哪家性价比高? - mypinpai