-
JavaScript继承有四种模式:1.原型链继承,通过prototype实现方法复用但属性共享;2.借用构造函数,用call/apply复制属性但无法继承方法;3.组合继承,结合前两者,属性独立且方法复用;4.ES6class,语法糖封装原型链,语义清晰且功能完备。
-
用BroadcastChannel协调多标签页任务分发与状态同步,WebWorker独立执行计算,通过localStorage防重入、IndexedDB存数据、ServiceWorker预缓存实现离线容错。
-
<footer>标签用于定义文档或内容块的页脚,包含版权、联系方式、辅助导航等信息;2.与<div>的本质区别在于语义化:<footer>明确表达“页脚”意图,提升可读性、SEO和可访问性;3.规划页脚需兼顾用户体验与SEO,通过内容分组、精选链接、结构化数据和响应式设计实现平衡;4.常见误区包括滥用标签、内容堆砌和忽视可访问性,最佳实践是准确使用语义化标签、逻辑分组内容、关注响应式与可访问性并定期维护更新。一个精心设计的页脚能有效提升网站的专业度和用户满意度。
-
推荐使用transform实现高效动画。通过transition与transform结合,利用GPU加速,避免重排,提升性能;相比直接过渡top、left更流畅,尤其在移动端应避免修改布局属性;可通过JS控制类名切换触发translate动画,并配合will-change等优化策略,确保动画顺滑。
-
可直接干预Vue编译过程,核心是替换或增强@vue/compiler-core的parse→transform→generate三阶段流水线,其中transform阶段最常用、最安全,支持逻辑注入、性能标记等构建时AST改造。
-
WebSocket.onmessage中直接更新DOM会卡顿,因高频消息触发强制同步重排;应缓存数据至Map,再用requestAnimationFrame批量更新DOM。
-
WebSocket连上即断基本是握手失败而非心跳问题,需检查Network中WS响应是否为101SwitchingProtocols及Upgrade、Connection响应头是否齐全,重点排查Nginx是否漏配proxy_http_version1.1、proxy_set_headerUpgrade$http_upgrade、proxy_set_headerConnection"upgrade"和proxy_read_timeout≥3600。
-
@supports不检测颜色对比度,仅判断浏览器是否支持特定CSS特性;它不能自动生成合规配色,但可检测color-mix()或filter:contrast()等现代特性以有条件启用增强方案。
-
linear-gradient只能作为background-image的值,不能用于background-color;必须用to方向或标准角度(注意0deg指向上),单位不可省略,旧浏览器需-webkit前缀。
-
必须用:nth-of-type()精准选第N个某类标签,因其仅对同标签兄弟独立计数;而:nth-child()按所有子元素位置计数,混排时易失效。
-
响应式网页中字体大小的调整,关键在于使用相对单位(如rem和em)结合媒体查询(mediaquery),让文字在不同设备上自然适配。核心思路是:以根元素字体大小为基准,通过rem控制整体比例,用em处理局部缩放,再借助mediaquery在不同屏幕宽度下动态调整根字号,实现全局协调的响应式文本。rem与em的作用区别理解rem和em是构建弹性字体系统的基础:rem:相对于根元素(html)的字体大小。例如html字号设为16px,1rem就等于16px。页面所
-
justify-items在Flex布局中完全无效,因其不属于Flex规范,Flex仅支持justify-content(主轴对齐)和align-items(交叉轴对齐);它专用于Grid布局,控制网格项在其单元格内的行内轴对齐。
-
position:absolute未按父元素定位是因为父元素未提供定位上下文;必须给父元素显式设置position:relative(或其他非static值)才能使其成为定位参照物。
-
推荐用object-fit控制图片缩放裁剪:cover保持比例裁剪溢出,contain完整显示留白;需配合width/height或aspect-ratio生效,IE需fallback;容器应优先锁定宽高比,避免硬编码HTML尺寸;SVG等非位图需单独处理。
-
变量被覆盖不是闭包问题,而是作用域绑定时机不当;var声明使循环共用一个i,异步执行时i已为终值;let每次迭代新建绑定,或用setTimeout第三个参数传参可解决。