-
应使用语义化列表标签:无序内容用<ul>,有序步骤用<ol>,条目必须为<li>;避免<div>模拟列表;CSS控制外观时拆解list-style属性;横向布局用flex;坚持原生标签保障可访问性。
-
图在JavaScript中常用邻接表表示,适合稀疏图和动态操作,邻接矩阵适用于顶点固定且边密集的场景,边列表则用于特定算法;实际应用如社交网络、导航和推荐系统均依赖图结构。
-
柯里化是将多参数函数转为单参数链式调用,如f(a,b,c)→f(a)(b)(c);核心是依fn.length判断参数是否收齐,用闭包累积args,满足条件后执行fn.apply(this,args)。
-
应避免直接JS频繁修改column-count,改用媒体查询控制列数;必须JS控制时用requestAnimationFrame节流;优先用grid模拟瀑布流以减少重排;内容含图片时需onload后强制重排;Safari下慎用column-width。
-
变量提升是JavaScript中var声明被提升并初始化为undefined,而let/const声明虽被提升但不初始化,访问会触发ReferenceError,该区域称暂时性死区(TDZ)。
-
align-items:baseline会让元素看起来“偏高”是因为替换元素(如input、img)的基线位于下边缘上移x高度处,而非文字底部;替代方案包括flex-end(底对齐)、center(居中)、align-self单独调整等。
-
Grid容器会忽略子元素的float属性,因其采用自身对齐机制;应使用justify-self、align-self、grid-column、grid-row或margin等替代方案实现定位;图文环绕等需浮动的效果可保留在非Grid容器中处理;迁移时推荐用grid-template-columns、gap和fr单位取代float布局,以提升灵活性与可维护性。
-
引入CSSReset后布局塌陷是因过度清零默认样式所致,需手动补全基础排版或改用Normalize.css;后者保留有用默认样式、仅修复浏览器差异,推荐多数项目使用。
-
fetch是现代首选,但需手动处理cookie、HTTP错误、JSON解析、POST序列化及AbortController取消;IE11等旧环境仍需XMLHttpRequest。
-
本文讲解React中权限检查函数无法返回true/false的常见原因及解决方案,重点解决因useState初始化为对象而非数组、循环逻辑错误导致的返回值异常问题。
-
事件委托通过事件冒泡将监听器绑定到父元素,减少内存占用并提升性能。例如,为包含100个列表项的<ul>绑定事件时,传统方式需100个监听器,而事件委托只需在<ul>上绑定一次即可处理所有点击。动态添加的子元素无需重新绑定事件,触发时会自然冒泡至父级已存在的监听器,适用于聊天记录、商品列表等频繁更新场景。通过data-action等属性可集中管理按钮行为,简化代码维护。示例中为表格绑定点击事件,根据目标元素的dataset判断执行编辑或删除逻辑。事件委托虽非万能,但在处理大量或动态元
-
去除HTML列表默认前导符号的方法有五种:一、用list-style:none;二、用list-style-type:none;三、用list-style:noneinside/outside清除图片和位置;四、用display:block/inline-block使li脱离列表渲染;五、用li::marker{content:"";}伪元素清除标记。
-
JavaScript垃圾回收基于可达性,非手动delete/null;内存泄漏主因是本该断开的引用仍存在。常见于未清理定时器、事件监听器或闭包持有大对象。定位用Chrome内存快照对比Retainers链路。
-
TDD通过“红-绿-重构”循环提升JavaScript代码质量:先写失败测试,再编写通过代码,最后重构并验证。配合Jest、Vitest等工具可高效实现自动化测试,确保代码稳定可靠。
-
:empty选择器用于匹配不含任何子节点的元素,包括文本、空格、标签或注释。例如,仅<divclass="box"></div>会被.box:empty选中,其余含空格、子标签或文字的均不匹配。需注意换行、缩进和注释也会导致元素非空,常用于隐藏未填充容器或表单验证等场景。