-
:read-only伪类仅对原生支持只读的表单元素(如input、textarea)且显式设置readonly属性时生效,不匹配disabled元素或contenteditable=false的非表单元素;需检查选择器优先级、属性是否被JS动态移除,并推荐用自定义class作为兼容性替代方案。
-
HTML5表单可通过原生属性实现自动验证:使用required、type、pattern等属性触发校验;用novalidate和formnovalidate控制验证时机;借助:valid/:invalid等CSS伪类定制样式;调用checkValidity()、setCustomValidity()等API增强控制;并结合aria属性提升移动端与无障碍支持。
-
标签模板是通过在模板字符串前添加函数实现自定义处理的高级特性,可用于SQL安全防护、CSS-in-JS等场景。函数接收字符串片段数组和插值数组,进而控制输出结果。例如,sql标签可转义用户输入防止注入;debug标签便于调试插值类型;css标签能解析样式并生成类名,体现其在构建DSL中的灵活性与强大能力。
-
使用:empty伪类可选择无任何内容的空元素,如不含文本、子元素或空白字符的div,仅第一个空div被选中,常用于隐藏空容器或表单校验。
-
浏览器渲染机制影响JavaScript性能,需避免频繁重排与重绘。解析HTML构建DOM,解析CSS构建CSSOM,合并生成渲染树,经布局、绘制、合成显示页面。JavaScript阻塞解析,频繁操作触发重排(如读取offsetTop)、循环修改DOM、长时间任务阻塞主线程,均降低性能。优化策略包括:批量DOM操作、避免强制同步布局、用class替换内联样式、使用requestAnimationFrame、高频事件采用防抖节流、复杂计算移至WebWorkers。配合CSS优化,优先用transform和op
-
应使用Normalize.css重置样式、手动设置HTML5元素display为block、禁用缓存并硬重载、清除站点全部存储数据、确保声明正确DOCTYPEhtml。
-
JavaScript操作DOM事件最常用addEventListener方法,支持多监听器与捕获阶段;事件委托通过父元素监听+event.target判断实现,适用于动态子元素,但focus/blur等不冒泡事件不可委托。
-
侧边栏滑入效果可通过transform与transition实现,首先将侧边栏设为transform:translateX(-100%)隐藏,再通过添加active类使其变为translateX(0),配合transition实现平滑动画,JavaScript通过切换类名控制显隐,性能好且易于维护。
-
答案是:通过重写XMLHttpRequest和fetchAPI实现请求拦截,或使用ServiceWorker进行全局拦截。前者适用于应用内简单拦截,后者支持离线缓存与全局控制,但需HTTPS且调试复杂。
-
box-sizing是控制width/height计算范围的属性,默认content-box(仅内容),推荐全局设为border-box(内容+内边距+边框),确保所见即所得;需包含伪元素,margin不受其影响。
-
全选功能可通过三种方式实现:一、用document.execCommand("selectAll")配合focus()适用于可编辑元素;二、用input/textarea的select()方法最简捷;三、用Range与SelectionAPI手动控制,适用于div等非表单元素。
-
Map和Set因基于哈希表,查找、插入、删除操作平均时间复杂度为O(1),优于对象和数组。Map支持任意类型键、性能稳定且可直接获取大小,适合高频读写的键值存储场景,如缓存系统;Set自动去重,has()方法为O(1),适用于去重和存在性判断,如防止重复提交;两者结合可高效处理多对多关系,如用户兴趣标签管理,显著提升大数据量下的操作性能与代码可维护性。
-
最常用的方法是toString(),因为它语义清晰且适用于明确的数字类型;2.String()能安全处理null和undefined,适合不确定类型时使用;3.空字符串拼接(+'')简洁但隐式,可读性较差;4.模板字面量(${})在构建复杂字符串时最优雅且自然完成转换;5.toString()支持进制转换,是唯一能转为二进制、十六进制等字符串的方法;6.所有方法对NaN、Infinity、-Infinity的转换结果一致,分别为"NaN"、"Infinity"、"-Infinity";7.选择应基于可读性
-
应将重复的CSS动画逻辑抽成语义化可复用class,如.animate-fade-in、.animate-slide-up等,统一时长0.3s和fill-mode:both;支持data属性动态控制参数;允许多类组合;推荐工具辅助生成;仅对高频低差异动效封装。
-
模块联邦是Webpack5实现微前端的核心技术,允许运行时动态共享模块。主应用通过remotes配置引入远程模块,子应用通过exposes暴露组件,shared设置公共依赖避免重复加载。需注意版本一致、样式隔离与错误处理,适用于多团队协作与独立部署场景,但依赖Webpack且增加调试复杂度。