-
垂直轮播需JS驱动+克隆项兜底,核心解决循环断裂、悬停失灵、移动端错位;@keyframes须严格闭环计算,容器需overflow:hidden,子项高度须一致且显式声明。
-
HTML中必须用dir属性和unicode-bidi:isolate组合控制双向文本,因direction仅影响视觉对齐而不改变逻辑顺序;dir="rtl"触发完整Bidi重排,影响光标、选区及数字分组,而unicode-bidi:isolate提供安全隔离,防止方向污染。
-
CSSGrid用auto-fit与minmax()实现响应式图片网格,避免flex-wrap断行错位;用figure包裹图文并设display:inline-block保证布局;图片错误监听onerror降级,dialog实现轻量预览,状态同步优先class切换。
-
移动端表单卡顿等问题源于未正确使用原生属性:用inputmode优先控制软键盘类型,避免type="number"滥用;聚焦时通过fixed定位防错位;autocomplete需语义准确;viewport禁用user-scalable=no以保可访问性;注意inputmode在旧版iOS的兼容性断层。
-
JavaScript可通过FileAPI在浏览器端直接读取用户选择的本地文件,核心是File对象(继承自Blob)与FileReader接口配合;通过<inputtype="file">获取FileList,用readAsText、readAsDataURL或readAsArrayBuffer异步读取,推荐URL.createObjectURL实现高效图片预览,并注意内存释放与大文件分块处理。
-
structuredClone()能深度克隆可序列化数据,避免异步任务中原始数据被意外修改;它支持Object、Array、Map、Set等类型,但不支持函数、Symbol、DOM节点等,需提前清洗或降级处理。
-
entries()方法返回一个迭代器对象,用于遍历数组的索引和值组成的键值对,1.调用arr.entries()返回迭代器而非数组,需通过for...of或next()方法访问;2.每次next()调用返回包含value(键值对)和done(是否结束)属性的对象;3.实际应用包括同时获取索引和值(如生成带索引类名的HTML)、简化数据处理逻辑及与其他迭代方法组合使用;4.相比for...in循环,entries()仅遍历数组元素而不包括自定义或继承属性,避免意外输出,更安全可靠。
-
仅当确定几秒内必从某第三方域名加载关键资源时才加rel="preconnect",如首屏所需的Google字体、CDN的CSS/JS或强依赖的API;同源、HTTP域名及旧版Safari不适用。
-
多级排序需将比较逻辑压缩进二元函数:先比主字段,相等再比次字段,依此类推;返回负数、正数或0决定顺序;须防空值与类型陷阱,用短路运算(如||、?:)串联层级。
-
SpeechSynthesis实现点击朗读需先监听onvoiceschanged或轮询getVoices()确保音色就绪,每次新建Utterance并调用cancel()避免堆积,且必须由用户手势同步触发speak();移动端兼容性差,fallback应优先考虑视觉模拟而非音频。