JavaScript 中 ArrayBuffer 与 SharedArrayBuffer 有何区别,分别在什么场景下使用?
围绕“JavaScript 中 ArrayBuffer 与 SharedArrayBuffer 有何区别,分别在什么场景下”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求说明 ArrayBuffer 不可共享、SharedArrayBuffer 可被多个代理访问并需原子操作。
数据处理专题面试题第 1 页,显示第 1–45 题,共找到 45 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“JavaScript 中 ArrayBuffer 与 SharedArrayBuffer 有何区别,分别在什么场景下”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求说明 ArrayBuffer 不可共享、SharedArrayBuffer 可被多个代理访问并需原子操作。
围绕“ArrayBuffer 的 transfer 和 slice 方法在处理二进制大数据时有什么不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求解释 transfer 移动底内存且不复制,slice 创建副本;并指出 transfer 会分离原 buffer。
围绕“如何将 Blob 转换为 ArrayBuffer,以及在此过程中可用的 API 有哪些”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明使用 blob.arrayBuffer() 或 FileReader,且返回 Promise,注意兼容性。
围绕“Blob、File、ArrayBuffer 和 TypedArray 在表示二进制数据时有何关联”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求解释 File 继承 Blob,Blob 可创建 ArrayBuffer,且 Blob 是不可变数据。
围绕“为什么在读取二进制数据时可能需要 DataView 而不是类型化数组”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求解释 DataView 允许字节序设置,而 typed array 总是平台字节序且不能直接读写非对齐数据。
围绕“JavaScript 中 new Date() 的几种构造器形式(字符串、数字、多参数)各自的时间基准有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明字符串参数(无时区)按本地或 UTC 取决于格式,多参数按本地时间,数值按 UTC 1970 起亿毫秒。
围绕“处理夏令时切换时使用 Date 应留意什么——如何避免在本地时间缺失的时段进行运算”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求指出当遇到不存在的本地时间(如 02:30 被跳过),Date 可能返回 03:30,需用 UTC 方法或库。
围绕“JavaScript Date 对象存储的是时间戳还是本地时间,为什么时区会影响字符串输出”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释 Date 内部存储毫秒时间戳,getHours 与 getUTCHours 的差异,date 字符串可能受本地时区影响。
本文解析为何用比较操作无法获知 Date 是否无效,说明通过 getTime() 与 Number.isNaN 检测的原理,并给出表单输入解析场景中的处理步骤及边界条件。
围绕“JavaScript Date 的 setHours 与 setUTCHours 对日期偏移的影响有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求解释本地时区与 UTC 方法修改时间戳的不同结果以及 DST 可能的影响。
围绕“如何获取用户本地时区相对于 UTC 的偏移量,以及可能遇到的问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求解释 getTimezoneOffset 返回分钟数且符号相反,并注意 DST 时偏移可变。
围绕“为什么 Date.prototype.toISOString 总是返回 UTC 时间,而 toLocaleStrin”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 toISOString 固定按 UTC 格式,toLocaleString 使用本地时区并可选项。
围绕“当二进制流前包含 BOM 时,TextDecoder 如何识别并去除 BOM”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明默认会忽略并移除 BOM,除非设置 ignoreBOM: true 让 BOM 保留在输出。
围绕“JavaScript 中如何按语言感知顺序比较字符串,而不只是按 Unicode 码点”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求解释 Intl.Collator 的 compare 方法及 locale 和 options 的影响。
本题解释Intl.DateTimeFormat如何通过timeZone选项将Date对象转换为指定时区的时间字符串,说明IANA时区标识符的用法和不同宿主环境下时区数据完整性的差异,帮助避免使用错误写法。
围绕“Intl.ListFormat 如何根据语言习惯格式化多个项目(如枚举列表)”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求使用 format 方法,并说明不同 locale 的连接词和标点规则。
围绕“为什么用 Intl.NumberFormat 格式化货币时推荐使用 currency 选项而不是手动拼接符号”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明自动处理货币符号、位置、千分位、小数位,且支持不同 locale 的约定。
围绕“Intl.NumberFormat 如何支持科学计数法等非默认数字格式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求说明 notation: 'scientific' 可格式化大数,且与 locale 的配合。
围绕“在开发国际化功能时,Intl.PluralRules 如何帮助选择正确的复数形式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求说明 select() 返回的类别如 'one'/'other',以及如何配合 ICU 消息。
围绕“如何使用 Intl.RelativeTimeFormat 将时间描述为“5 分钟前””给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 new Intl.RelativeTimeFormat(locale).format(value, unit) 的用法及负数表。
围绕“Intl.Segmenter 如何帮助将字符串按语言拆分为单词或句子”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明可用 granularity 为 'grapheme', 'word', 'sentence',并返回迭代器。
围绕“Intl API 如何检测并回退不支持的地区,为什么 fallback 很重要”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 supportedLocalesOf 返回支持列表,且 locale 协商会按层级回退,否则可能报错。
围绕“JSON.stringify 在处理 BigInt 值时会抛错,如何设计自定义序列化来支持它”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明默认 TypeError,可给对象实现 toJSON 或将 BigInt 转为字符串再序列化。
围绕“JSON.stringify 遇到循环对象会抛出什么错误?除手动处理外,有哪些常用替代方案”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 TypeError: Converting circular structure to JSON,并提及可检测或使用替代序列化。
围绕“JSON.stringify 如何序列化 NaN 和 Infinity?为何这些值不能直接出现在 JSON 中”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明它们在非数组属性上被序列化为 null,并解释 JSON 不接受 Number 的 NaN。
围绕“JSON.parse 的 reviver 参数如何处理日期字符串,从而避免自动转换的陷阱”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求说明 reviver 可拦截每个键值并转换,应用场景是将 ISO 日期字符串变为 Date 对象。
围绕“JSON.stringify 的 replacer 参数如何过滤或转换对象中的属性”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求解释 replacer 可为函数或数组,且递归访问每个键值对以决定是否保留。
围绕“JSON.stringify 在序列化包含 undefined、函数和 Symbol 值的对象时如何处理这些值”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求说明这些值在数组中被序列化为 null,在对象中被忽略,在个别属性上下文中返回 undefined。
围绕“JavaScript 正则中 s 标志 (dotAll) 的作用是什么,与 m 标志的区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 s 使 . 匹配换行符,m 改变 ^ $ 的行为,两者独立。
围绕“当正则使用 g 或 y 标志时,如何手动重置其 lastIndex 以避免跳过匹配”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 exec/test 会更新 lastIndex,因此需手动置 0 或使用循环。
讲解 JavaScript 正则四种环视断言的语法、零宽语义与浏览器支持差异,给出提取等号后数字的实例与旧环境下后顾断言的降级方案。
围绕“String.prototype.matchAll 与循环使用 exec() 相比有什么改进”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求说明 matchAll 返回包含捕获组的迭代器且不需要手动更新 lastIndex,并支持命名组。
比较 JavaScript 正则中命名捕获组与数字捕获组的写法、结果对象属性(groups 与下标)、反向引用(\k<name> 与 \1)及 replace 中的引用方式,并给出使用边界。
解释 JavaScript 正则中量词默认贪婪、加 ? 转懒惰的机制,用标签配对场景对比两种写法对匹配范围和捕获组结果的影响,并给出判断边界。
本题剖析 JavaScript 正则 sticky(/y)与 global(/g)在匹配起点和 lastIndex 更新上的不同表现,指出 /y 强制锁定起点而 /g 可向右扫描,并澄清失败时 lastIndex 的重置规则。
围绕“如何用 Unicode 属性转义在 JavaScript 正则中匹配特定字符类别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释 \p{Script=...}, \p{Letter} 等的用法,并说明必须启用 u 标志。
围绕“使用 TextDecoder 的 stream: true 选项处理分块数据时,为什么需要传递 true”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 stream 模式允许暂未完成的字符缓存,直到后续 chunk 补齐;否则会替换/丢失字符。
围绕“当字节流不是合法 UTF-8 时,TextDecoder 默认如何处理,如何改变处理方式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求说明 fatal 选项是否抛出异常,以及 ignoreBOM 选项的作用。
围绕“使用 TextEncoder 将字符串转换为 Uint8Array 时,为什么输出是 UTF-8 编码”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 TextEncoder 始终按 UTF-8 编码,且不支持其他编码,用途与 TextDecoder 配合。
围绕“类型化数组(如 Uint8Array)与普通数组在内存表示和 API 上有哪些关键差异”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 typed array 是 ArrayBuffer 的视图、元素固定长度、连续内存,且没有 push/pop 等方法。
围绕“类型化数组的 subarray 与 slice 有什么区别,各在什么场景下使用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 subarray 返回共享内存的新视图,slice 复制生成独立 buffer。
围绕“在正则中使用 unicode 标志 (/u) 对处理 emoji 和特殊字符有何影响”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 /u 启用 Unicode 模式,使 . 和量词按码点匹配,且可识别代理对。
围绕“JavaScript 中字符串的 normalize 方法在比较 accented 字符时为什么重要”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求说明不同码点序列可视觉相同,normalize 将其统一,从而比较稳定。
围绕“用 JavaScript 反转一个含有 emoji 的字符串会遇到什么问题,如何正确实现”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明简单 split('') 反转会破坏代理对,需用 Array.from 或基于码点的方法。
围绕“为什么 JavaScript 字符串中 emoji 等字符的长度有时是 2,如何正确遍历所有 Unicode 字符”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释 UTF-16 代理对,length 属性失真,for...of 可按码点遍历。