-
Vue通过响应式系统自动追踪依赖,数据变化驱动视图更新;React则依赖手动状态更新与虚拟DOM比对,由开发者触发渲染。
-
使用媒体查询可根据设备特性应用不同样式,实现响应式设计。基本语法为@media媒体类型and(媒体特性){样式规则},常用媒体类型包括screen(屏幕设备),常用于适配不同屏幕宽度、高度等,确保页面在各类设备上良好显示。
-
JavaScript继承基于原型链,Class是语法糖。对象通过[[Prototype]]链接向上查找属性,函数的prototype为实例原型,__proto__指向构造函数的prototype;Object.create建立原型链实现继承;Class语法中extends自动设置原型链,底层机制不变;typeof验证Class为函数,继承仍依赖原型链,super沿链查找方法,本质是动态委托。
-
overflow属性控制内容溢出行为,hidden隐藏溢出内容并可清除浮动,scroll始终显示滚动条确保交互一致,auto按需智能显示滚动条节省空间,应根据布局与用户体验需求选择适用场景。
-
模板字面量使用反引号包裹,支持嵌入变量和表达式、多行字符串及标签函数。例如:constname="小明";constage=25;constmessage=你好,我是${name},今年${age}岁。;可直接输出拼接结果;${a+b}支持运算,${status?'在线':'离线'}支持三元表达式;多行字符串无需转义,保留格式;通过标签函数如highlight可自定义处理逻辑,用于防XSS或国际化等场景。
-
使用grid-auto-rows与flex可实现响应式图片缩略图布局。1.通过grid-auto-rows设定统一行高,结合auto-fit实现列数自适应;2.每个网格项启用flex布局,实现内容居中或叠加效果;3.配合object-fit:cover和overflow:hidden确保图片裁剪一致;4.利用伪元素padding-bottom维持宽高比,保证容器形状;5.通过媒体查询调整小屏下的列宽与行高,优化显示与点击区域。该方案兼顾结构控制与内容对齐,适配多设备。
-
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不受其影响。