前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
首页程序员面试题库数据处理专题面试题
面试知识索引 · 分类、标签与搜索

数据处理专题面试题,45 道完整答案

数据处理专题面试题第 1 页,显示第 1–45 题,共找到 45 道完整解析,可继续按分类、标签与关键词缩小范围。

45筛选结果
52技术分类
178检索标签
1索引分页
按分类建立知识面,再用标签和搜索定位问题

每页只渲染 50 道题。分类与标签分页可抓取,自由搜索结果不会制造无限 SEO 页面。

快速定位

分类、标签与关键词搜索

清除全部筛选
题库检索
技术分类52 个
全部分类5000AI Agent511浏览器301JavaScript285React281AI 开发262CSS240Node.js217TypeScript206Vue180前端工程化138React Native135
查看全部 52 个分类
操作系统135数据库134Docker95计算机网络94API 设计90Kubernetes90HTML89Redis89全栈开发88分布式系统88系统设计86HTTP85Next.js60Angular58Linux53Nuxt51PostgreSQL46可观测性46设计模式46小程序45身份与权限45无障碍44MongoDB43PWA43Web 安全43Git42前端测试42前端性能41WebAssembly40测试40AI 工程37SvelteKit37Go35前端数据管理30React Router29AI 全栈28Svelte27算法12Java10数据结构5前端手写题3
热门标签178 个
全部标签数据处理45并发编程448缓存355性能优化340安全336异步编程292类型系统215构建工具211容器化184流处理177表单157SQL148HTTP141路由140离线应用121
查看其余 163 个标签
网络协议111测试109数据库事务95实时通信92Web 可访问性90动画79可观测性77Agent 记忆75向量检索66工具调用66LangGraph59Prompt56任务规划53排障与运维53数据库索引52浏览器自动化51Flexbox50值与类型50GraphQL49事务与并发49构建与镜像49DNS 与 TLS48工程协作与交付48AI 评测47CSS Grid47Express 服务47MCP47副作用与同步47向量与嵌入47文件与多媒体47流与二进制47传输与协议46列表与性能46可维护代码46响应式原理46容器运行46指标日志追踪46数据建模与运维46文件与 I/O46表单与输入46MCP 协议45RAG45Vite 与模块构建45Webpack45内存与虚拟化45原生集成45多 Agent45工作负载与发布45应用与性能45模块与工具链45组件与模板45缓存与数据结构45网络与运维45评估与调试45身份认证与授权45运行时与开发45Web 系统方案44一致性与容错44侦听与生命周期44分布式使用44原生组件与交互44可访问交互44消息与异步处理44渲染与调度44索引与执行计划44组件设计44缓存与代理44进程与并发44层叠与选择器43攻击面与防御43文档数据库43权限与安全43离线与渐进增强43语义与文档43请求与通信 API43Worker 与线程协作42事件系统42存储与离线数据42服务架构42服务端与流式渲染42服务端工程42泛型设计42版本控制42类型收窄42类型运算42组件与端到端42编码与执行42进程与线程42DOM 与文档操作41Flex 布局41HTTP 语义41NestJS 架构41REST 与接口契约41SQL 查询41加载与交互性能41动画与视觉41类型工程41记忆与状态41运行时与调度41Agent 架构40WebAssembly 集成40单元与集成测试40多 Agent 协作40工作流编排40模块与语言机制40浏览器与 UI 自动化40生产运行40函数与作用域39响应式设计39性能与并发39类型系统基础39Grid 布局38数组与集合38盒模型与排版38Hooks 与复用37应用开发37推理与成本37状态共享37知识库数据37模型与应用评测36对象与原型35状态与渲染35语言与并发35异步与 Promise34Effect32RAG 检索31React 性能31响应式与性能31微调与数据31TanStack Query30全栈边界30数据与缓存30大模型基础29路由与数据流29事件循环28流式交互28提示与上下文设计27数据与服务端27组件与依赖注入27组件与响应式27多模态应用24应用与渲染24Hydration22沙箱安全22状态管理18算法18CI/CD13语言与运行时10React Server Components6搜索与排序4实用函数实现3链表栈队列3图算法2字符串算法2树与遍历2索引与高级结构2Kubernetes1作用域与函数1动态规划1异步与浏览器1手写与交互性能1数组与双指针1相等比较1
当前页01 / 1

正在显示第 1–45 题

JavaScript45
第 1 页

本页面试问题

按稳定语义路径排序

  1. 0001
    JavaScript数据处理

    ArrayBuffer 和 SharedArrayBuffer 有什么区别,分别用在什么场景?

    ArrayBuffer 发给 Worker 时要么复制一份,要么转移所有权;SharedArrayBuffer 是主线程和 Worker 同时读写同一块内存,所以要用 Atomics 保证读改写不被打断。附共享计数器示例、跨源隔离要求和选择建议。

    核心关键词ArrayBuffer 与 SharedArrayBuffer 区别
    #数据处理
  2. 0002
    JavaScript数据处理

    ArrayBuffer 的 transfer 和 slice 有什么区别,处理大数据时该用哪个?

    slice 复制一段字节生成新的 ArrayBuffer,原来的照常可用;transfer 把内存移交给新的 ArrayBuffer,原来的变成已分离状态、长度为 0。讲清两者的内存开销、旧视图失效的问题、transfer 改变长度的规则和兼容写法。

    核心关键词ArrayBuffer transfer 与 slice 区别
    #数据处理
  3. 0003
    JavaScript数据处理

    怎么把 Blob 转成 ArrayBuffer,有哪些 API 可以用?

    现代浏览器直接用 await blob.arrayBuffer(),老环境用 FileReader.readAsArrayBuffer 配合 load、error 事件。讲清两种写法、怎样把 FileReader 封装成 Promise、大文件为什么要用 stream 或分片读取,以及转文本的更简单方法。

    核心关键词Blob 转 ArrayBuffer 的 API 方法
    #数据处理#异步编程
  4. 0004
    JavaScript数据处理

    Blob、File、ArrayBuffer 和 TypedArray 之间是什么关系?

    File 继承自 Blob,多了文件名和修改时间;Blob 是不可修改的字节块;ArrayBuffer 是可读写的一段内存;TypedArray 是按固定类型解读 ArrayBuffer 的视图。附读取文件头的示例,讲清它们怎么互相转换。

    核心关键词Blob File ArrayBuffer 二进制数据关系
    #数据处理
  5. 0005
    JavaScript数据处理

    解析二进制协议时,为什么要用 DataView 而不是 Uint16Array?

    解析文件头、网络包这类二进制数据时,类型化数组只能按本机字节序、按对齐位置读同一种类型,DataView 可以在任意偏移读任意宽度,并逐次指定大端或小端。附协议头解析示例和对齐报错的原因。

    核心关键词DataView 字节序 与类型化数组区别
    #数据处理
  6. 0006
    JavaScript数据处理

    new Date 传数字、传字符串、传多个参数,分别按什么时区算?

    new Date 传数字是 UTC 毫秒时间戳,传年月日多个参数按本地时区,传字符串要看格式:只有日期按 UTC,有时间没偏移按本地,带 Z 或偏移就是确定的时间点。附对照代码、月份从 0 开始和日期溢出的坑。

    核心关键词JavaScript new Date 构造器参数 时间基准
    #数据处理
  7. 0007
    JavaScript数据处理

    夏令时切换那天,用 Date 做时间计算会出什么问题?

    夏令时切换那天,有一小时的本地时间不存在,还有一小时会出现两次。讲清 Date 遇到不存在的 02:30 为什么变成 03:30,加 24 小时和加一天为什么不一样,以及日程类业务该怎么存时间。

    核心关键词JavaScript Date 夏令时切换 时间运算问题
    #数据处理
  8. 0008
    JavaScript数据处理

    Date 对象里存的是时间戳还是本地时间?为什么换台电脑打印出来就不一样?

    Date 内部只存一个 UTC 毫秒时间戳,不存时区。getHours、toString 按运行环境的本地时区显示,getUTCHours、toISOString 按 UTC 显示。讲清同一个时间点为什么在北京和纽约打印不同,以及 Date 为什么记不住输入时的偏移。

    核心关键词JavaScript Date 时间戳存储与时区输出
    #数据处理
  9. 0009
    JavaScript数据处理

    new Date 解析失败了怎么判断?instanceof Date 为什么不够?

    new Date 解析失败不会返回 null,也不报错,而是得到一个时间值为 NaN 的 Date 对象。讲清为什么 instanceof 判断不出来,怎么用 Number.isNaN 配合 getTime 检测,以及 2 月 31 日这种会被自动进位、根本不算无效的日期怎么校验。

    核心关键词JavaScript 检测 Invalid Date 的方法
    #数据处理#表单
  10. 0010
    JavaScript数据处理

    setHours 和 setUTCHours 有什么区别?什么时候结果会不一样?

    setHours 改的是本地钟点,setUTCHours 改的是 UTC 钟点。讲清在东八区把时间设成当天零点为什么两者差 8 小时,跨夏令时加两小时为什么一个过了 3 小时一个过了 2 小时,以及 setter 会原地修改对象、返回时间戳这两个坑。

    核心关键词JavaScript Date setHours与setUTCHours区别
    #数据处理
  11. 0011
    JavaScript数据处理

    getTimezoneOffset 在北京为什么返回 -480,而不是 8?

    getTimezoneOffset 返回的是 UTC 减本地时间的分钟数,所以东八区是 -480,符号和常说的 UTC+8 正好相反。讲清它为什么和具体日期有关、半小时时区怎么格式化,以及想知道用户时区名该用什么。

    核心关键词JavaScript Date getTimezoneOffset 时区偏移
    #数据处理
  12. 0012
    JavaScript数据处理

    为什么 toISOString 打出来的时间比北京时间少 8 小时,toLocaleString 却是对的?

    toISOString 固定输出 UTC 时间、以 Z 结尾,是给机器交换数据用的;toLocaleString 按语言和时区输出给人看的文本。讲清两者的分工、用 toISOString 截日期为什么会少一天,以及显示指定时区时间的正确写法。

    核心关键词Date toISOString 与 toLocaleString 时区差异
    #数据处理
  13. 0013
    JavaScript数据处理

    文件开头带 BOM 时,TextDecoder 会怎么处理?ignoreBOM 是什么意思?

    TextDecoder 默认会识别开头的 BOM 并把它去掉,设置 ignoreBOM 为 true 反而会把 BOM 留在结果里,名字很容易理解反。讲清 BOM 是什么、为什么 Excel 导出的 CSV 常带它、分块解码怎么处理,以及它引起的 JSON 解析失败。

    核心关键词TextDecoder 处理BOM ignoreBOM选项
    #数据处理
  14. 0014
    JavaScript数据处理

    中文名字用 sort() 排出来乱七八糟,怎么按拼音或语言习惯排序?

    数组 sort 默认按 UTF-16 编码比较字符串,中文不按拼音,item10 会排在 item2 前面。讲清 Intl.Collator 怎么按语言规则排序,numeric 和 sensitivity 两个常用选项,以及它和 localeCompare 的关系。

    核心关键词Intl.Collator 按语言规则比较字符串
    #数据处理
  15. 0015
    JavaScript数据处理

    页面要同时显示北京时间和纽约时间,用 Intl.DateTimeFormat 怎么写?

    给 Intl.DateTimeFormat 传 timeZone 选项,就能把同一个 Date 显示成任意地区的当地时间,不用改服务器时区,也不用自己加减小时。讲清 locale 和 timeZone 的分工、IANA 时区名的写法、formatToParts 拼自定义格式,以及 SSR 时的时区一致性。

    核心关键词Intl.DateTimeFormat 指定时区格式化时间
    #数据处理
  16. 0016
    JavaScript数据处理

    「张三、李四和王五」这种列表文案,为什么不能直接用 join 拼?

    把几个名字连成一句话,中文用顿号加「和」,美式英文最后一项前还要加逗号,德语又不加。讲清 Intl.ListFormat 的 format 用法,type 的 conjunction、disjunction、unit 三种语义,以及用 formatToParts 给每一项加链接的写法。

    核心关键词Intl.ListFormat 按语言格式化列表
    #数据处理
  17. 0017
    JavaScript数据处理

    显示金额时,为什么不要写 '$' + amount,而要用 Intl.NumberFormat?

    金额格式不只是前面加个符号:千分位、小数位、符号放前还是放后、负数怎么写,各国都不一样,日元还没有小数。讲清 Intl.NumberFormat 的 style currency 用法、currencyDisplay 怎么区分美元和加元,以及格式化不能解决浮点精度的问题。

    核心关键词Intl.NumberFormat currency 货币格式化
    #数据处理
  18. 0018
    JavaScript数据处理

    很大或很小的数字,怎么用 Intl.NumberFormat 显示成科学计数法?

    Intl.NumberFormat 的 notation 选项有 standard、scientific、engineering、compact 四种。讲清科学计数法和工程计数法的区别、有效数字怎么控制、和 toExponential 有什么不同,以及 988M、9.9亿这种紧凑写法该用哪个选项。

    核心关键词Intl.NumberFormat 科学计数法 notation
    #数据处理
  19. 0019
    JavaScript数据处理

    做多语言时,「1 file / 2 files」这种单复数怎么写才对?

    英语只有单数和复数两种,俄语有三种,阿拉伯语有六种,用 count === 1 判断只对英语有效。讲清 Intl.PluralRules 的 select 返回什么、怎么配合文案表使用、ordinal 模式怎么生成 1st 2nd 3rd,以及为什么文案表必须有 other。

    核心关键词Intl.PluralRules 选择复数形式
    #数据处理#表单
  20. 0020
    JavaScript数据处理

    评论区的「5 分钟前」「昨天」,用 Intl.RelativeTimeFormat 怎么实现?

    Intl.RelativeTimeFormat 的 format 接收一个带正负号的数值和单位,负数表示过去,正数表示未来,numeric 设为 auto 还能输出昨天、明天。讲清它只负责措辞、不负责算时间差,以及怎么自己写一个自动选单位的 timeAgo 函数。

    核心关键词Intl.RelativeTimeFormat 相对时间格式化
    #数据处理
  21. 0021
    JavaScript数据处理

    中文没有空格怎么分词?emoji 的长度为什么不对?Intl.Segmenter 怎么用?

    split 按空格切不了中文,length 数 emoji 会多算,Intl.Segmenter 按语言规则把文本切成用户看到的字符、单词或句子。讲清 grapheme、word、sentence 三种粒度,isWordLike 和 index 的含义,以及字数统计、安全截断这些常见用法。

    核心关键词Intl.Segmenter 字符串分词分句
    #数据处理
  22. 0022
    JavaScript数据处理

    用户的语言浏览器不支持时,Intl 会怎么回退?应用要怎么兜底?

    Intl 的构造器遇到不支持的语言不会报错,而是悄悄回退到更通用的语言或运行环境默认值。讲清 supportedLocalesOf 怎么检测支持情况、resolvedOptions 怎么看最终用了哪种语言,以及为什么应用还要有自己的语言回退,不能只依赖 Intl。

    核心关键词Intl supportedLocalesOf 地区回退检测
    #数据处理
  23. 0023
    JavaScript数据处理

    JSON.stringify 碰到 BigInt 直接报错,怎么序列化才不丢精度?

    JSON.stringify 遇到 BigInt 会抛 TypeError,转成 Number 又会在超过 2 的 53 次方后悄悄丢精度。讲清为什么要用 replacer 转成字符串、接收端怎么按字段转回 BigInt、为什么不建议改 BigInt.prototype.toJSON,以及后端返回大数字 ID 怎么办。

    核心关键词JSON.stringify BigInt 报错 自定义序列化
    #数据处理
  24. 0024
    JavaScript数据处理

    JSON.stringify 遇到循环引用会报什么错?除了手动删属性还有什么办法?

    对象里有属性指回自己或祖先时,JSON.stringify 会抛 TypeError: Converting circular structure to JSON。讲清 WeakSet 版 replacer 为什么会误伤共享引用,怎么用祖先栈区分真正的环,以及深拷贝为什么该用 structuredClone。

    核心关键词JSON.stringify 循环引用报错 解决方案
    #数据处理
  25. 0025
    JavaScript数据处理

    JSON.stringify 遇到 NaN 和 Infinity 会怎样?为什么不报错?

    NaN、Infinity 和 -Infinity 都不是合法的 JSON 数字,JSON.stringify 会把它们统一写成 null,而且不报错。讲清为什么这样设计、往返之后为什么恢复不了、提交前怎么用 Number.isFinite 拦住,以及确实需要保留时怎么用 replacer 和 reviver 编码。

    核心关键词JSON.stringify NaN Infinity 序列化为null
    #数据处理
  26. 0026
    JavaScript数据处理

    接口返回的日期是字符串,怎么用 JSON.parse 的 reviver 转回 Date?

    Date 经过 JSON 往返会变成字符串,JSON.parse 不会自动转回来。讲清 reviver 怎么按字段把日期字符串恢复成 Date、它从里到外的调用顺序、返回 undefined 会删属性,以及为什么不能见到像日期的字符串就转,还有 2 月 30 日这种会被引擎悄悄挪走的日期。

    核心关键词JSON.parse reviver 解析日期字符串
    #数据处理
  27. 0027
    JavaScript数据处理

    JSON.stringify 的第二个参数有什么用?怎么用它过滤和转换属性?

    JSON.stringify 的第二个参数 replacer 可以是函数或属性名数组。函数能逐个转换或过滤值,数组是属性白名单,而且对嵌套对象同样生效。讲清两种形式的区别、根节点空 key、调用顺序、数组元素返回 undefined 会变成 null,以及 toJSON 和 replacer 的先后。

    核心关键词JSON.stringify replacer 参数过滤属性
    #数据处理
  28. 0028
    JavaScript数据处理

    对象里有 undefined、函数和 Symbol,JSON.stringify 之后它们去哪了?

    undefined、函数和 Symbol 在 JSON 里都没有对应的类型:在对象里整个属性被删掉,在数组里变成 null,单独序列化直接返回 undefined。讲清三种位置为什么处理不同、PATCH 接口里「不传」和「传 null」的区别,以及 Symbol 键、稀疏数组这些细节。

    核心关键词JSON.stringify 处理undefined 函数 Symbol
    #数据处理
  29. 0029
    JavaScript数据处理

    正则的 s 标志是干什么的?和 m 标志有什么区别?

    s 标志让点号能匹配换行符,m 标志让 ^ 和 $ 能匹配每一行的开头和结尾,一个管点号、一个管锚点,互不影响。附日志多行提取、逐行匹配的例子,以及不开 s 时常见的 [\s\S] 写法。

    核心关键词JavaScript 正则 s标志dotAll与m标志区别
    #数据处理
  30. 0030
    JavaScript数据处理

    带 g 的正则连续调用 test,为什么结果一会儿 true 一会儿 false?

    带 g 或 y 标志的正则会用 lastIndex 记住上次匹配到哪里,复用同一个实例做校验就会出现 true、false 交替。讲清 lastIndex 的更新规则、三种修法、exec 循环里什么时候该重置,以及空匹配导致死循环的处理。

    核心关键词正则 lastIndex 手动重置 g与y标志
    #数据处理#测试
  31. 0031
    JavaScript数据处理

    正则里的前瞻和后顾断言怎么用,有什么区别?

    用千分位格式化、提取金额两个例子讲清 JavaScript 正则四种环视断言:前瞻看右边、后顾看左边,都只检查不吃字符。附密码规则多条件校验、断言写反位置的常见错误,以及老环境不支持后顾时的降级写法。

    核心关键词JavaScript 正则 前瞻与后顾断言用法
    #数据处理
  32. 0032
    JavaScript数据处理

    有了 matchAll,为什么不再推荐用 while 循环调 exec?

    对比 exec 循环和 matchAll 拿全部匹配的两种写法:matchAll 返回带捕获组、命名组和 index 的迭代器,不用手动维护 lastIndex,也不改动原正则。附不带 g 报 TypeError、迭代器只能用一次等常见坑。

    核心关键词matchAll 与 exec 循环匹配的区别
    #数据处理
  33. 0033
    JavaScript数据处理

    正则的命名捕获组怎么用,和 match[1] 这种写法比好在哪?

    用解析日期的例子讲清 JavaScript 正则命名捕获组:怎么写、怎么通过 groups 读取、在 replace 字符串和回调里怎么引用、正则内部怎么反向引用。对比数字下标,说明它为什么在正则改动时更不容易取错,以及可选分支没命中时的 undefined 问题。

    核心关键词JavaScript 正则 命名捕获组 用法
    #数据处理
  34. 0034
    JavaScript数据处理

    正则的贪婪匹配和非贪婪匹配有什么区别?

    用匹配引号内容和 HTML 标签的例子,讲清 JavaScript 正则量词默认贪婪、加问号变懒惰的区别,以及背后的回溯过程。说明懒惰不等于最短匹配、为什么排除型字符类往往是更好的写法,并附灾难性回溯的常见追问。

    核心关键词JavaScript 正则 贪婪与懒惰量词区别
    #数据处理
  35. 0035
    JavaScript数据处理

    正则的 y 标志和 g 标志有什么区别,y 适合用在哪?

    g 从 lastIndex 开始往后找,y 必须恰好在 lastIndex 处匹配、不许跳过字符。用对比代码和一个真实的四则运算词法分析器讲清 sticky 标志的用途,以及它和 ^ 锚点、gy 组合在 match 和 replace 里的表现。

    核心关键词JavaScript 正则 sticky标志y与global标志g区别
    #数据处理
  36. 0036
    JavaScript数据处理

    正则里的 \p{Script=Han} 是什么,怎么用它匹配汉字?

    JavaScript 正则的 Unicode 属性转义怎么用?讲清 \p{Script=Han}、\p{Letter}、\p{Number} 分别匹配什么,为什么必须加 u 标志,和手写 [一-龥] 区间比强在哪,以及它处理不了 emoji 组合字符的边界。

    核心关键词JavaScript 正则 Unicode属性转义 \p{} 匹配
    #数据处理
  37. 0037
    JavaScript数据处理

    分块解码时,TextDecoder 为什么要传 stream: true?

    流式读取 fetch 响应时,一个汉字的 UTF-8 字节可能被拆到两个 chunk 里,直接解码就会出现乱码。讲清 TextDecoder 的 stream: true 如何缓存半个字符、为什么必须复用同一个实例、最后为什么还要调一次 decode(),以及 SSE 场景下还要处理的半行问题。

    核心关键词TextDecoder stream:true 分块解码多字节
    #数据处理#缓存#流处理
  38. 0038
    JavaScript数据处理

    字节不是合法 UTF-8 时,TextDecoder 会报错还是出乱码?

    TextDecoder 遇到非法 UTF-8 字节默认不报错,而是替换成 U+FFFD 继续解码;开启 fatal 后才会抛 TypeError。讲清两种模式各适合什么场景,ignoreBOM 为什么名字容易理解反,以及编码选错时 fatal 为什么救不了你。

    核心关键词TextDecoder 非法UTF-8 fatal 替换处理
    #数据处理#流处理
  39. 0039
    JavaScript数据处理

    TextEncoder 为什么只能输出 UTF-8,能指定成 GBK 吗?

    TextEncoder 把字符串转成 Uint8Array,输出永远是 UTF-8,构造函数不接受编码参数。讲清一个字符会变成几个字节、为什么不能用 length 算字节数、encode 和 encodeInto 的区别,以及和能解多种编码的 TextDecoder 为什么不对称。

    核心关键词TextEncoder 字符串转UTF-8 Uint8Array
    #数据处理
  40. 0040
    JavaScript数据处理

    Uint8Array 和普通数组有什么区别?

    Uint8Array 这类类型化数组本质是 ArrayBuffer 上的一个视图:长度固定、元素类型固定、内存连续,写入 300 会变成 44,也没有 push。讲清 ArrayBuffer 和视图的关系、多个视图共享内存时的字节序问题,以及什么场景该用类型化数组。

    核心关键词类型化数组与普通数组 内存表示差异
    #数据处理
  41. 0041
    JavaScript数据处理

    类型化数组的 subarray 和 slice 有什么区别?

    Uint8Array 的 subarray 和 slice 参数一样,结果却完全不同:subarray 返回共享内存的视图,改它会改到原数组;slice 复制出一份独立数据。讲清两者的代价、复用缓冲区时 subarray 带来的数据被覆盖问题,以及和普通数组 slice 的区别。

    核心关键词类型化数组 subarray 与 slice 区别
    #数据处理
  42. 0042
    JavaScript数据处理

    正则加不加 u 标志,匹配 emoji 时有什么区别?

    不加 u 时,正则把一个 emoji 看成两个 UTF-16 代码单元,点号、量词、字符类都会把它拆成两半。本文用可运行的例子讲清 u 标志改变了什么、它为什么让语法更严格,以及它管不到的组合 emoji。

    核心关键词JavaScript 正则 u标志 处理emoji代理对
    #数据处理
  43. 0043
    JavaScript数据处理

    两个看起来一样的 é,为什么用 === 比较是 false?

    é 在 Unicode 里有两种写法:一个预组字符,或者 e 加一个组合重音。它们显示完全一样,但 === 比较是 false。本文讲清 normalize 的四种形式 NFC、NFD、NFKC、NFKD 的区别,以及搜索、去重、做索引时该怎么用。

    核心关键词JavaScript String normalize NFC NFD 比较
    #数据处理
  44. 0044
    JavaScript数据处理

    split('').reverse().join('') 反转带 emoji 的字符串,为什么会乱码?

    经典的 split('').reverse().join('') 会把 emoji 拆成两个代理项再颠倒顺序,结果变成乱码。本文对比按代码单元、按码点、按字素簇三种反转方式,讲清 Array.from 为什么还不够,以及 Intl.Segmenter 怎么处理家庭 emoji、国旗和带重音的字母。

    核心关键词JavaScript 正确反转含emoji的字符串
    #数据处理
  45. 0045
    JavaScript数据处理

    为什么一个 emoji 的 length 是 2?怎么正确遍历字符串?

    JavaScript 字符串用 UTF-16 编码,编号超过 U+FFFF 的字符要拆成一对代理项存储,所以 emoji 的 length 是 2。本文讲清代理对怎么算出来、for 循环和 for...of 遍历的区别、charCodeAt 与 codePointAt 的用法,以及统计用户可见字数的正确做法。

    核心关键词JavaScript 字符串 代理对 emoji长度为2 遍历
    #数据处理
上一页
1
下一页
前端进阶之旅本地 Markdown 维护 · 服务端分页 · 完整内容对用户与搜索引擎一致