-
getters适合封装纯函数式搜索逻辑,应分离搜索条件与数据源,按高选择性过滤→模糊搜索→排序顺序组合基础getter,并对大数据集启用缓存、节流及异步搜索模式。
-
多个await执行顺序取决于Promise是否串行发起或相互依赖:串行await因结果依赖必须依次等待;并行await应先发起所有独立请求再用Promise.all统一await;混合模式则先串行获取基础数据,再并发拉取子资源。
-
SharedWorker是浏览器端唯一支持跨标签页复用WebSocket以降低服务端并发连接数的机制,需同源HTTPS/localhost运行,连接逻辑、重连、心跳、消息路由(含clientId隔离)及状态同步均须在Worker内实现。
-
优先用::after实现全屏水印是为避免与Vue/React条件渲染生成的首节点冲突,::before易被误判为内容前置导致定位偏移;::after更稳定挂载末尾,配合position:fixed层级控制更可靠。
-
button[type="submit"]无反应是因为未处于form上下文中;需确保其为form后代或通过form属性关联;表单提交需监听form的submit事件并preventDefault();纯JS提交应改type="button"并手动发请求。
-
纯CSS下拉菜单需严格嵌套:子<ul>必须是父<li>的直接子元素,消除间隙并用position:absolute+top:100%定位;移动端需JS降级,且必须补全aria属性与键盘导航支持。
-
最稳的图片网格写法是display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr)));,配合img{width:100%;height:auto}和loading="lazy"及<picture>现代格式。
-
min-content是内容不换行时的最小宽度,如英文最长单词或整段URL撑开的宽度;max-content是内容完全不换行所需最小宽,无视父容器限制,易致溢出。
-
实现导航栏下拉动画需结合CSS的transition与transform属性。1.构建HTML结构,包含主菜单与子菜单;2.通过CSS设置.dropdown-content默认opacity:0、visibility:hidden和transform:translateY(-10px),实现隐藏;3.利用:hover触发状态,使opacity:1、visibility:visible、transform:translateY(0),配合transition实现滑动淡入效果;4.可分离transition属
-
br仅强制换行无语义,p是语义化段落容器;br滥用导致结构混乱、可访问性差、SEO权重丢失;p自带默认间距且可样式控制,br无法独立设置间距;p必须闭合,br自闭合;误用br会损害屏幕阅读器导航与阅读模式兼容性。
-
最快弹窗用window.alert(),但仅限调试;正式环境推荐dialog元素(Chrome97+/Firefox99+/Safari15.4+)或手写modal;需处理焦点管理、ESC关闭、遮罩层交互及移动端适配。
-
对象属性必须按固定顺序初始化以保障V8隐藏类复用,乱序写入或条件赋值会导致隐藏类分裂、内存浪费与性能下降;Object.defineProperty无法弥补初始顺序缺失,class构造中应确保所有实例初始化全部属性。
-
浮动元素脱离文档流,不再为父容器撑高且不影响块级兄弟元素垂直位置;块级兄弟元素“上移”、内联内容“环绕”;父容器高度塌陷是规范行为,修复方式包括触发BFC、清除浮动或改用Flex/Grid。
-
闭包能有效解决异步脚本加载中回调挂载与执行顺序不一致的问题——通过将回调函数与对应脚本上下文绑定,为每个脚本创建独立作用域以保存专属回调和标识,避免因加载完成顺序不可控导致的调用错乱、参数覆盖或状态污染。
-
<p>Math.random()不安全、不可重现且易产生分布偏差,密码等场景须用crypto.getRandomValues();生成整数应使用Math.floor(Math.random()*(max-min+1))+min。</p>