-
JavaScript垃圾回收靠可达性判断对象是否该被清除:从根对象出发标记所有可访问对象,未被标记的不可达对象即被清除;可达性取决于引用链是否连通,而非delete或null赋值。
-
HTML5的标签能直接实现模态弹窗,但浏览器支持不均、默认样式简陋、交互逻辑必须手动补全——它不是“开箱即用”的组件,而是需要你亲手搭骨架的原语。dialog元素的基本打开/关闭流程原生没有自动绑定按钮或点击遮罩关闭的行为,所有交互都得靠JS控制。它的核心就两个方法:show()和showModal();关闭统一用close()。show():显示非模态对话框(不锁背景、不聚焦、可被tab穿透)——基本没人用showModal():真正意义上的弹窗,会加灰层、禁用背景
-
rAF比定时器更适合动画,因其与屏幕刷新率同步、自动暂停、无需手动计算帧间隔;基础用法需递归调用,推荐使用时间戳控制进度;注意取消动画、避免强制重排、优先使用transform/opacity,并可添加polyfill兼容旧浏览器。
-
简化CSS选择器和减少重绘可显著提升响应式网页性能,应避免深层嵌套与通用选择器,优先使用类名;动画采用transform和opacity并启用硬件加速,减少回流与布局抖动。
-
FormData提交失败时勿手动设置Content-Type,否则丢失boundary;混合提交注意append顺序与类型统一;fetch后response.json()报错需检查响应头及内容;IE11不支持newFormData(form),应手动append。
-
aria-pressed用于标识按钮的“按下”状态,适用于切换行为的按钮。1.它不是描述按钮是否可点击,而是反映其当前状态,如静音或播放/暂停按钮;2.可用在原生<button>或带role="button"的元素上;3.其值为true、false或mixed,需通过JavaScript动态更新以匹配视觉状态;4.与aria-checked(复选框状态)和aria-selected(集合中选中项)不同,分别应用于不同语义场景;5.动态更新至关重要,确保屏幕阅读器能实时反馈状
-
本文详解如何让JavaScript文本滑动动画同时作用于多个.animate-text元素,解决querySelector()仅匹配首个元素导致其余实例失效的问题,并提供可复用、无冲突的模块化实现方案。
-
Vue3自定义指令可通过binding.instance?.emit()间接触发组件emit,推荐暴露triggerAction方法并由指令调用以解耦逻辑,适用于埋点等副作用场景。
-
不必须,但不加type或sizes会导致Safari和旧版Edge忽略图标;type推荐显式声明为image/png或image/svg+xml,sizes仅对PNG或ICO有效且SVG不支持。
-
最直接、语义最清晰的解法是li:not(:last-child){border-bottom:1pxsolid#eee;},它精准排除最后一个li,兼容IE9+,不误伤嵌套结构,且动态增删时自动生效。
-
IE11仅支持2012年旧版CSSGrid规范,需手动将display:grid改为display:-ms-grid,并用-ms-grid-column/-ms-grid-row等属性替代现代语法,fr单位须换算为具体数值或百分比,Autoprefixer仅加前缀不降级语法。
-
translate()移动元素自身坐标原点,正值向右下、负值向左上;不触发重排,仅影响渲染层;常见问题包括被absolute定位或overflow:hidden覆盖;优先用于动画等无需改变文档流的场景。
-
直接改后缀无法打开是因为文件内容仍是纯文本,缺少HTML结构、编码声明和语义标签,导致浏览器解析异常;推荐用Python脚本添加DOCTYPE、metacharset、p标签等基础结构并正确处理UTF-8编码。
-
@import不适合响应式断点管理,因其同步阻塞加载、无法条件下载,且构建工具会提前展开,导致断点失效、额外请求与渲染阻塞。
-
使用align-items:center配合display:flex可实现垂直居中,需父容器有高度且设置flex布局,结合justify-content:center还可实现水平居中,适用于现代浏览器中的各类对齐场景。