-
ref可安全获取DOM元素或子组件实例,需模板绑定同名ref属性、脚本中用ref(null)声明,并在onMounted后通过value访问;绑定子组件时须配合defineExpose暴露内容。
-
JSON.stringify()遇到对象时优先调用其toJSON()方法(若存在),用其返回值参与序列化;toJSON必须返回可序列化值,可实现字段过滤、重命名、格式转换及嵌套递归控制。
-
JSON不是JavaScript子集,必须用JSON.parse()和JSON.stringify()显式转换;直接当对象访问会报错,因JSON是纯文本;解析需try/catch防崩,生成时函数、undefined等会被忽略或转null。
-
HTML原生popover的auto模式不自动关闭,需手动实现外部点击关闭:在document监听click,用closest()判断点击是否在popover或触发元素内,否则调用hidePopover()。
-
数据大屏粒子背景需绑定容器尺寸、禁用滚动与鼠标交互、适配高分屏且透明不遮挡;canvas宽高须基于容器rect和devicePixelRatio动态设置,tsparticles须关闭autoSize和fullScreen并禁用hover/click。
-
HTML密码框的安全性取决于浏览器和系统原生机制,而非JS拦截;禁用粘贴或右键会破坏密码管理器和无障碍支持,autocomplete与autocapitalize等属性必须正确设置以确保自动填充、密码生成及软键盘适配。
-
响应式布局中外边距塌陷并非CSS错误,而是块级流在断点切换时暴露规范行为:flex切block后子元素margin垂直合并,gap未重置或margin残留会加剧问题;推荐用display:flow-root创建BFC或统一用gap/padding控制间距。
-
overflow-y:auto在Flex容器中失效,根本原因是父容器无明确高度约束导致无法触发溢出;必须设置height/max-height,并为滚动区域添加min-height:0及-webkit-overflow-scrolling:touch(iOS兼容)。
-
纯CSS无法生成真正随机色,必须用JS计算HSL值并写入CSS变量,再通过hsl(var(--h),var(--s)%,var(--l)%)动态应用;需预设fallback、控制取值范围、添加transition且作用于目标元素。
-
str-insert不能直接插入CSS属性值,因其返回带引号字符串,需配合unquote()才能生成合法CSStoken;且索引从1开始,越界会静默失败。
-
JavaScript的rest参数是捕获函数多余实参的语法糖,必须位于形参末尾且唯一,生成真数组;与arguments不同,它原生支持数组方法、适用于箭头函数,且仅在函数参数、数组/对象解构中合法。
-
WebSocket仅负责传输WebRTC所需的信令数据(offer/answer/icecandidate),无法直接传输音视频流,因其基于TCP导致队头阻塞、无丢包恢复机制、缺乏NAT穿透能力且浏览器不支持MediaStream直接序列化。
-
优化多重复数断言正则的关键是控制回溯范围与深度:用否定字符类限定断言内匹配、外提逻辑预筛、原子组切断回溯路径、合并或拆分断言、锚定加长度前置剪枝。
-
backdrop-filter在Bootstrap导航栏中默认不生效,因navbar有不透明背景导致背后无可模糊内容;需设半透背景(如rgba)、确保父容器有实际背景、避免overflow:hidden,并为Firefox等加降级方案。
-
Array.prototype.reverse()仅原地翻转数组,是否实现“由近及远”取决于入栈顺序;若历史按时间正序推入则需reverse(),若已按倒序push则不应再调用;推荐用unshift()从源头维护新项在前,或用timestamp排序更可靠。