-
JavaScript内存泄漏常见于全局变量、定时器、事件监听、闭包和DOM引用未清理,可通过ChromeDevTools的Memory和Performance面板检测,并用WeakMap/WeakSet优化引用管理。
-
本文详解jQuery中因容器与可克隆元素混淆导致的“点击一次添加多行”异常现象,指出根本原因是.bulk:first克隆了包含所有历史副本的整个容器,而非单个模板行,并提供结构分离、事件委托及无ID优雅方案。
-
font-display必须显式设为swap以避免首屏白屏,它用系统字体先渲染再替换;preload字体需加crossorigin、as="font"和type;只用woff2格式;启用font-optical-sizing:auto提升可读性。
-
flex-wrap:wrap可使Flex子元素在空间不足时自动换行。默认nowrap不换行,wrap允许换行且新行在下方,wrap-reverse新行在上方。结合justify-content控制行内对齐,align-content控制多行垂直分布,并可通过flex和gap实现响应式布局。
-
隔行变色可用nth-child(odd/even)实现,兼容IE9+;需注意其按父元素所有子元素排序,混用标签时建议限定范围或改用nth-of-type。
-
width未生效的首要原因是display类型不支持,如inline元素无视width;其次box-sizing影响宽高计算范围;最后父容器的布局模式(如flex、浮动、定位)会覆盖子元素width设置。
-
可以在子类静态方法中用super.方法名()调用父类静态方法,super此时是编译期确定的父类类名别名,直接定位父类静态成员,等价于ParentClass.方法名(),且this指向当前子类。
-
v-once是Vue中让元素或组件仅渲染一次、跳过后续响应式更新的性能优化指令;适用于初始化后永不变化的静态内容,如版权信息、固定文案、不可变字段等,但不可用于需响应式更新的区域。
-
展开运算符...是JavaScript中用于将可迭代对象或类数组对象“逐项取出并铺开”的操作符,仅在需多个独立值处生效,如函数调用、数组/对象字面量中。
-
controls不生效主因是拼写错误(如control)、资源加载失败(404/MIME错误/编码不支持)或autoplay未配muted;原生控件不可CSS定制,需JS自定义;多格式+preload="metadata"更可靠。
-
移动端首字下沉必须用::first-letter,因initial-letter兼容性差;需用clamp()控制字号与行高,float:left配合rem/em间距,并设父容器overflow:hidden防错位。
-
生产环境下Vue响应式数据不会主动泄露,但需切断控制台输出、JSON序列化、全局挂载、错误堆栈等非预期暴露通道,并通过markRaw、readonly、脱敏日志、DOM过滤及构建期隔离实现多重防护。
-
必须加viewportmeta标签,否则手机端适配失效;需设width=device-width、initial-scale=1.0,禁用user-scalable=no;按钮热区≥44px、避免touch-action干扰;输入框勿用fixed,改用absolute+relative;微信X5内核需显式声明charset、禁用@import、JS等DOMContentLoaded。
-
微信小程序WebSocket连接失败主因是wss域名未在公众平台配置白名单;需单独添加ws子域名、禁用路径、测试版需开启debug;状态判断应以socketTask.readyState为准;心跳必须在onOpen中启动;重连须防抖退避并重置socketTask。
-
掌握ChromeDevTools的断点、调用栈、Console交互及性能分析功能,可系统化定位问题。1.通过行断点、条件断点、DOM断点和XHR断点精准控制执行流程;2.利用调用栈切换上下文,结合Scope面板和Watch表达式查看变量状态;3.在Console中使用debug、monitorEvents、$0等命令注入代码并交互;4.使用Performance和Memory面板分析性能瓶颈与内存泄漏。组合运用这些工具,实现高效、可追踪的调试流程。