Object.is、=== 与 SameValueZero 的差别
梳理 JavaScript 三种相同值规则在 NaN、正负零、对象身份上的差异,说明数值归一化、缓存键和不可变更新应如何选择比较方式。
核心关键词Object.is
JavaScript · 缓存面试题第 1 页,显示第 1–4 题,共找到 4 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
梳理 JavaScript 三种相同值规则在 NaN、正负零、对象身份上的差异,说明数值归一化、缓存键和不可变更新应如何选择比较方式。
WeakMap 的键传统上只能是对象,ES2023 起也可以是非注册的 Symbol。它对键是弱引用,键对象没有其他引用时条目会被回收。讲清为什么不能用字符串当键、为什么没有 size 和遍历,以及适合的缓存和私有数据场景。
流式读取 fetch 响应时,一个汉字的 UTF-8 字节可能被拆到两个 chunk 里,直接解码就会出现乱码。讲清 TextDecoder 的 stream: true 如何缓存半个字符、为什么必须复用同一个实例、最后为什么还要调一次 decode(),以及 SSE 场景下还要处理的半行问题。
同一个解析后的模块地址被多处导入,宿主通常只实例化并执行一次,随后导入复用同一模块记录。查询参数、不同解析结果或不同运行环境会形成不同身份;单例状态能否共享,取决于这些导入最终是否指向同一模块。