dev.to | 📄 原文链接 | 2026-08-22 收录

缺失的汇率不是 1:一个能错 280 倍的单行代码

来源:dev.to — 2026-08-21

📋 概述

这是 DEV Summer Bug Smash(Sentry 驱动)的参赛作品。作者指出 `var fx = (rates?.rates?.[currency]) || 1` 这行看似防御式编程的代码,会把"没有汇率"错误地当作"汇率是 1",导致某页面渲染出 1 BTC = 95,000 PKR,而真实值约 2,660 万。文章进一步剖析了同函数里另一个相似陷阱:缓存过期时间未知时被映射成 0,又被解读为"刚刚更新"。两者的本质都是把"缺失值"替换成"看似合理的默认值",再以与真实测量值相同的置信度渲染出来。

🔑 核心要点

💡 金句

一个缺失的值,被换成一个貌似合理的默认值,再以与实测值相同的底气渲染出来——这才是最危险的地方。
← 返回 dev.to 首页