-
JavaScript中反斜杠用于转义字符,必须正确使用:\"、\'、\\、\n、\t、\r等有特定含义;模板字符串不支持\x转义;正则需双重转义;ES6推荐\u{...}和\x替代八进制。
-
WebWorkers通过消息传递实现主线程与Worker线程间的通信,支持字符串、数字、数组、对象及ArrayBuffer等可序列化数据类型,不支持函数、DOM节点等;利用postMessage发送数据,onmessage接收,可通过TransferableObjects如ArrayBuffer提升大数据传输性能,传输后原引用失效;主线程调用worker.terminate()或Worker内调用self.close()关闭Worker,同时需监听onerror处理异常;适用于高耗时任务如大数据解析、图像
-
必须使用input[type="radio"]配合label和CSS兄弟选择器实现,确保可访问性、键盘导航及表单提交;禁用display:none隐藏radio,改用position:absolute;clip:rect(0000);悬停与选中状态需通过:checked~label和:hover~label叠加控制;fieldset包裹并配legend满足WCAG标准。
-
BigInt是处理大型科学装置原始脉冲计数值的唯一可靠选择,因其可精确表示超10¹⁸量级整数,避免Number类型因精度限制导致的截断与失真,确保计数、比较、累加、差分全程保真。
-
闭包封装权限校验函数,通过工厂函数接收权限数组并返回记忆化校验函数,支持字符串/数组输入及通配符处理,配合Vue模板、自定义指令实现声明式按钮控制,需结合响应式状态确保权限更新同步。
-
HTML离线跳转空白主因是ServiceWorker未针对destination==='document'请求单独拦截并返回缓存的index.html;SPA需统一fallback至index.html,且HTML与JS资源必须同步缓存、版本一致,并启用skipWaiting()和clients.claim()确保SW及时生效。
-
应使用setHTML()配合Sanitizer实例替代innerHTML,因其默认禁用事件处理器、javascript:伪协议等XSS载荷;但需注意浏览器兼容性(Safari不支持)、必须显式传入Sanitizer实例、不支持ShadowDOM,且服务端仍需基础过滤。
-
display:flow-root是解决浮动导致父容器高度塌陷最干净、语义化的方案,它通过创建BFC使父容器包含浮动子元素尺寸,不裁剪内容、无副作用,现代浏览器支持良好。
-
unicode-range在IE11、Android4.4WebView及iOS9.3前Safari中不支持或解析异常,导致字体回退失效;需用JavaScript检测lang属性加载子集、@supports降级、独立font-family兜底并清洗字体name表。
-
transform-style:preserve-3d没效果最常见的原因是父容器未设置该属性,导致子元素3D变换被拍平;必须在直接包含3D子元素的父容器上显式设置,且需配合perspective、避免overflow:hidden等裁剪行为。
-
不能直接撑开,伪元素需设pointer-events:none并用absolute定位扩展热区,同时确保父容器relative、真实元素保留默认事件捕获,配合touch-action:manipulation减少延迟。
-
使用fr单位、minmax()函数和auto-fit可实现CSSGrid响应式缩放:1.fr按比例分配剩余空间,容器变化时列宽等比伸缩;2.minmax(200px,1fr)确保最小宽度同时允许弹性扩展;3.repeat(auto-fit,minmax(200px,1fr))使列数自适应屏幕,自动填满并拉伸轨道;4.混合80px、1fr、minmax(200px,2fr)等单位可构建复杂布局。关键在于minmax上限设为1fr以保持弹性,避免固定值导致失去响应性。
-
FileReader读取中文乱码需显式指定编码,如readAsText(file,'GBK');若编码未知,先用readAsArrayBuffer()配合TextDecoder尝试解码。
-
零基础HTML配色应依赖工具或算法而非手动选色,推荐用Coolors等在线工具导出CSS变量,再通过var()调用;动态场景优先使用chroma.js处理色彩计算与对比度校验。
-
fetch调用免费汇率API总返回CORS错误,是因为服务端未配置Access-Control-Allow-Origin,需通过后端代理或改用支持CORS的CDN源(如currency-api)解决。