JavaScript Array.isArray 跨环境检查:明明是数组,instanceof 为什么返回 false 组件拿到另一执行环境创建的数组后,value instanceof Array 可能返回 false。反过来,一个普通对象只要把原型接到 Array.prototype,也可能让这条检查通过。如果函数真正要求的是数组... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
JavaScript RegExp.escape:输入只是一个文件名,句点为什么变成了匹配规则 给一组名称增加搜索框时,直接写 new RegExp(query) 看起来很方便。输入 a.b 后,axb 和 a-b 也可能被选中,因为句点已经作为正则语法参与匹配。若用户输入的是要查找的文字,应在构造模式以前明确... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
JavaScript Array.from 的双入口:length 写了二,为什么仍然读出三项 接入一个外部集合时,看见对象有零、一两个索引和 length: 2,容易预期 Array.from 只复制这两项。可是对象还可能提供 Symbol.iterator;两套入口同时存在时,Array.from 会先使用... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
JavaScript toJSON 的位置参数:同一个对象,放进根、字段和数组为什么输出不同 给对象定义 toJSON 后,JSON.stringify 使用的是这个方法返回的表示。这个钩子还会收到一个 key 参数:同一个对象直接导出、放到 payload 字段里、或放到数组里,收到的位置名称各不相同。如果... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
JavaScript splice 的省略参数:没有写删除数量,与写 undefined 为什么结果不同 维护一段数组编辑工具时,直接写 items.splice(1) 能删除后面的所有元素,套一层函数后却可能什么都没删。即使包装函数中的 count 值是 undefined,也不等于调用时根本没有第二个参数。splic... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
JavaScript TypedArray.from 的映射时机:先乘十再转整数,为什么与先建数组再 map 不同 把小数测量值乘十后存进字节数组,常见的两种写法只差一步:Uint8Array.from(input, transform),或 Uint8Array.from(input).map(transform)。它们都返回新... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
JavaScript 可调整缓冲区:缩短后视图变成零长,再扩大为什么旧字节没有回来 用可调整ArrayBuffer接收数据时,底层容量一缩短,原来四项的Uint8Array突然报告长度零。随后把容量扩大,它又恢复四项,但原来尾部数据已经变成零。这些现象属于缓冲区大小与视图有效范围变化,不能用普通数组... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
TextDecoder 的 ignoreBOM:设为 true,为什么开头反而多出一个不可见字符 读取带 UTF-8 BOM 的短文本时,开发者把 ignoreBOM 设为 true,期待忽略文件开头的标记,字符串却多了一个 U+FEFF。这个名字容易被理解反了:true 会忽略BOM的特殊处理,使对应字符进入结... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
JavaScript 解构默认值:已经写了备用值,为什么 null 仍然原样留下 读取任务选项时,给 retries 写了默认值三,接口传来 null 后却依旧得到 null。这里的默认初始化只在取到 undefined 时执行;它没有检查值是否适合业务,也不会把所有看起来“空”的输入换成三。下面... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
JavaScript concat 展开谁:Set 可以遍历,为什么合并后仍然只占一项 Set 明明能用于 for...of,也能通过展开语法得到两个值,可是传给 concat 后,结果数组只有一个元素。可迭代不等于 concat 会逐项合并;这两个操作使用不同协议,不能只凭集合“里面有多项”判断输出。... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读