-
用Map存储函数引用是轻量级元编程,关键在于安全存储、快速查找和稳定扩展;需依场景选容器,统一接口封装函数,并分离注册与执行流程。
-
BroadcastChannel与MessagePort不能直接配合使用,因前者依赖结构化克隆算法,而后者不可克隆;正确做法是用BroadcastChannel广播通知,再通过MessagePort或SharedWorker建立专属数据通道。
-
本文介绍一种比串联多个正则表达式更可靠、更可维护的方式——使用DOMParser解析HTML字符串并提取innerText,彻底避免正则处理标签带来的边界问题与安全隐患。
-
JavaScript中处理Unicode需区分字符、码元、码点;ES6前按UTF-16码元操作易出错,ES6起支持基于码点的length计算(如扩展运算符)、遍历(for...of)和正则(/u标志、\p{Emoji})。
-
可替换元素是浏览器不完全依赖HTML内容、而由外部资源或内置UI控件决定其尺寸与外观的元素。如<img>渲染图片、<video>启用播放器、<inputtype="checkbox">绘制复选框,其行为绕过标准CSS盒模型。
-
必须先转义HTML字符再用<code>包裹才能正确显示源代码;<var>和<samp>仅表语义,不自动转义,误用会导致解析错误或无障碍问题。
-
Promise.withResolvers仅用于单次终态触发场景,解决Promise创建后外部安全调用resolve/reject的问题,不支持多阶段状态流转、重入或取消重试等复杂状态机需求。
-
preconnect必须写在<head>中且仅支持完整协议+域名,不支持路径或省略协议;需为跨域字体等CORS资源添加crossorigin属性,建议控制在3–6个关键域名以内。
-
HTML5本身不提供地图或测距功能,实际是通过HTML5页面加载第三方地图SDK(如高德、Leaflet等),调用其API实现测距;必须基于经纬度使用球面公式或SDK地理计算函数,禁用像素距离估算。
-
在Vue3中,当组件接收的props可能是原始对象或JSON字符串时,可通过toRefs+computed封装通用工具函数,在不污染响应式、不修改原始props的前提下,自动解析字符串为对象,实现类型统一与逻辑解耦。
-
<p>scrollWidth-clientWidth不等于滚动条宽度,而是内容溢出量;稳定获取滚动条宽度应使用offsetWidth-clientWidth(配合隐藏滚动容器测量)或scrollbar-gutter:stable防布局抖动。</p>
-
HTML表单本身不支持热力图,所谓“表单热力图”是前端行为分析工具(如Hotjar、MicrosoftClarity、Matomo等)在页面加载后,通过JS注入实现的叠加层,不是HTML或CSS原生能力。为什么标签里加不了热力图热力图本质是记录用户鼠标移动、悬停、点击、聚焦等事件,并在DOM上绘制透明色块。HTML表单只是语义化容器,没有事件采集、数据上报、可视化渲染逻辑。不触发任何自动埋点,也不会把input、select的交互行为“广播”给分析服务浏览器
-
iPad上HTML5FileReader读取PDF失败主因是系统沙盒限制,非代码错误;应优先用readAsDataURL配合pdfjs解析,超30MB改用系统原生链路。
-
用<nav>包裹语义化<a>标签实现九宫格,CSSGrid配repeat(auto-fit,minmax(100px,1fr))和gap自适应行列,aspect-ratio:1/1加min-height:88px保障触控与可访问性。
-
中文排序必须用Intl.Collator('zh',{sensitivity:'base'}),因localeCompare依赖系统locale不可靠;'zh'是最稳妥locale值,sensitivity:'base'忽略声调适配商品名;需避免重复创建实例、确保ICU支持、清理不可见字符。