-
JavaScript内存泄漏的常见原因包括意外的全局变量、未清除的定时器和事件监听器、闭包的不当使用、脱离DOM树但仍被引用的元素、以及console.log在特定环境下的影响。根本原因是这些情况下存在不必要的强引用,导致垃圾回收器无法释放内存。避免泄漏的核心是管理好引用关系,用完及时解除。具体做法有:使用let/const限制作用域,避免全局污染;定时器和事件监听器在不需要时必须手动清除;谨慎处理闭包引用,必要时手动置为null;移除DOM元素的同时清除JS中的引用;利用WeakMap/WeakSet建
-
overflow:hidden通过触发BFC包含浮动子元素高度来解决塌陷,但会裁剪溢出内容;display:flow-root是更安全现代的替代方案,专为解决此问题设计。
-
使用CSS的text-transform:lowercase属性可将HTML文本显示为小写,无需修改原始内容,实现格式统一。
-
通过JavaScript的HistoryAPI在页面加载时移除URL中的查询参数,可防止用户刷新结果页时重复执行逻辑,确保每次查看新结果都需重新提交表单。
-
Array.prototype.sort()默认按字符串Unicode码点排序,非数值大小;ES2019起要求稳定排序,但需规范比较函数且返回数字,否则稳定性无保障。
-
min-width在flex项目中常失效,因flex-shrink默认为1,容器优先压缩内容而非尊重min-width;需显式设置flex-shrink:0才能使min-width生效,否则即使设min-width:200px仍会被强制缩小。
-
JavaScript全屏功能依赖FullscreenAPI,需用户手势触发;调用requestFullscreen()进入、exitFullscreen()退出;通过fullscreenElement判断状态;监听fullscreenchange事件响应变化,并需处理Promise拒绝。
-
JavaScript创建对象推荐字面量(如{name:"Alice"}),因其简洁、可读性强且引擎优化好;newObject()冗长易错,仅在动态构造或原型操作时使用。
-
IndexedDB是W3C标准的客户端数据库,支持存储大量结构化数据,具备异步操作、事务机制、索引查询和大容量存储等特点,适用于离线应用与高性能前端场景。
-
HTML转PDF时背景不显示是因为浏览器默认禁用背景打印,需在Puppeteer中设printBackground:true、wkhtmltopdf加--background参数、WeasyPrint则原生支持background-color和base64图片。
-
首先将HTML代码保存为.html文件,再用浏览器打开即可查看效果。具体步骤包括:使用文本编辑器保存代码并确保扩展名为.html;双击文件或右键选择浏览器打开;借助VSCode等编辑器的LiveServer实现热更新预览;对需HTTP服务的项目,可通过Node.js搭建本地服务器运行;最后利用浏览器开发者工具调试页面结构与错误,确保正常显示和功能完整。
-
伪元素必须配合content属性使用,否则不渲染;默认为行内级,需设display才能设置宽高;无法被JS操作或绑定事件,仅能通过宿主元素class或data属性间接控制。
-
video.duration返回NaN是因元数据未加载完成,须监听loadedmetadata事件并在isFinite(video.duration)为真时读取;动态设src需重新绑定事件;React中需用useRef和useEffect正确管理生命周期。
-
HTML5页面需用JavaScript发起网络请求与后端交互,主流方式包括XMLHttpRequest(兼容旧浏览器,需手动设头、处理状态)和FetchAPI(现代标准,基于Promise,语法简洁)。
-
优先用letter-spacing实现视觉字距调整,因其不干扰语义与可访问性;需保留空白或不可折行时才用空格实体;letter-spacing对所有字符一视同仁,中英文混排易割裂,宜配合text-rendering优化。