各位靓仔靓女,晚上好!我是你们的老朋友,今天咱们来聊聊 JavaScript 里面的一个奇葩玩意儿——NaN,以及它背后的故事,还有 IEEE 754 标准这个幕后黑手。保证让你们听完之后,对 JavaScript 的数字世界有更深刻的认识,以后遇到妖魔鬼怪也能淡定应对。 第一幕:NaN的身世之谜 首先,我们得认识一下 NaN 这个家伙。它的全称是 "Not a Number",字面意思就是“不是一个数字”。但问题来了,如果它不是一个数字,那它是什么? 在 JavaScript 中,NaN 实际上是一个属于 Number 类型的值。是不是有点绕? 别急,咱们慢慢来。 想象一下,你在做一些数学运算,但是结果根本无法用数字来表示。比如: 0 除以 0: 0 / 0 对负数开平方根: Math.sqrt(-1) 尝试将无法转换为数字的字符串转换为数字: parseInt(“hello”) 这些操作都会产生 NaN。 简单来说,NaN 是 JavaScript 用来表示无效或未定义数学运算结果的一种方式。 console.log(0 / 0); // 输出:NaN cons …
继续阅读“分析 `JavaScript` `NaN` 和 `typeof NaN` 的特殊性,以及 `IEEE 754` 双精度浮点数标准对 `JavaScript` 数字计算的影响。”