You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何isNaN()对含字母的数字字符串处理结果不同?以1e0与10e为例

为什么isNaN("1e0")返回false,isNaN("10e")返回true?

isNaN()函数的核心逻辑是:先尝试把传入的参数转换为数字,若转换结果为NaN则返回true,否则返回false。

两种情况的具体分析:

  • isNaN("1e0")返回false:
    "1e0"是符合ECMAScript规范的科学计数法格式,e代表10的幂次,1e0等价于1 * 10^0,计算结果为数字1。isNaN()处理该字符串时,能成功将其转换为有效数字1,不是NaN,因此返回false。

  • isNaN("10e")返回true:
    "10e"是不合法的科学计数法格式,规范要求e后面必须跟随整数(正负数均可),而该字符串中e后没有任何数字,无法转换为有效的数字,转换结果为NaN,所以isNaN()返回true。

内容的提问来源于stack exchange,提问作者chickpea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:30:50