-
addEventListener第三个参数填true表示捕获阶段、false表示冒泡阶段;stopPropagation只阻断当前阶段传播,stopImmediatePropagation才彻底中断;事件委托依赖冒泡,需用event.target判断真实触发元素。
-
使用textContent修改文本,innerHTML插入HTML,value更新表单值,setAttribute和style修改属性与样式,注意安全与事件触发。
-
TypeScript是带类型检查的JavaScript增强版,所有合法JS代码都合法,但通过编译时检查提前拦截空值等错误;优先用interface定义可扩展业务对象,unknown替代any保障安全,类型是需持续维护的活契约。
-
Flex换行后视觉顺序异常实为默认排列逻辑与预期不符,核心解决法是用order微调或重构HTML使语义与视觉一致,每行内部始终按HTML顺序排列。
-
loading="lazy"主要优化首屏以下图片加载,长图文、商品列表及弱网环境下提升显著;首屏关键图启用反而损害LCP,需配合width/height、srcset及preload等协同优化。
-
主线程卡死的典型表现是按钮点不动、滚动条拖不了、requestAnimationFrame停摆、开发者工具打不开;WebWorkers通过独立线程执行CPU密集型任务并用postMessage通信来规避此问题。
-
用JavaScript发送POST请求最直接的方法是使用XMLHttpRequest对象,但现代开发中更推荐使用fetchAPI。使用fetchAPI发送POST请求的步骤如下:1.使用fetch函数发送请求,设置method为'POST',并在headers中设置'Content-Type'为'application/json'。2.在body中使用JSON.stringify()将数据转换为JSON格式。3.使用.then处理响应,使用.catch处理错误。
-
font-weight未生效的主因是字体不支持对应字重,需通过DevTools检查计算值及字体文件是否存在;其次注意加载顺序、简写语法缺失font-family、打印/移动端兼容性等问题。
-
position:relative只改变元素渲染位置而不影响文档流,文字仍按原占位排版;若需文字环绕或对齐,应改用flex、float或vertical-align等方案。
-
Promise是对异步状态的封装,非同步化工具;newPromise(fn)中fn立即执行且须调用resolve/reject;.then()/.catch()每次返回新Promise,状态由回调返回值或错误决定。
-
使用容器和CSS实现HTML视频响应式布局,通过设置宽度百分比、height:auto及padding-bottom维持16:9比例,结合媒体查询优化小屏显示,确保视频自适应不同设备。
-
min-width不改变盒模型类型但影响渲染尺寸,其限制基准由box-sizing决定:content-box限内容宽,border-box限总宽;在flex/grid中常因默认min-width:auto失效;与width、max-width共存时取三者交集,min-width优先级最高。
-
animation-timing-function控制动画速度曲线,决定其节奏。它通过预设函数(如ease、linear、ease-in-out)或自定义cubic-bezier()调节快慢变化,也可用steps()实现逐帧动画,使动画更自然流畅或富有情感表现。
-
表单元素未对齐的根本原因是未显式定义网格轨道,应使用display:grid配合grid-template-columns(如1fr2fr)将每组label+input作为逻辑行处理,并用grid-column/grid-row精确控制位置,注意响应式重置与语义一致性。
-
正确使用button标签可提升可访问性和代码语义化。button元素默认提交表单,type属性决定行为:submit提交、button无默认行为、reset重置表单。应优先于div或span用于触发操作,因其原生支持键盘交互且屏幕阅读器可识别。需确保按钮有文本内容或aria-label,禁用时使用disabled属性而非仅视觉灰显。链接a用于导航,button用于动作执行,二者语义不可混淆。