-
闭包是函数记住其创建时的词法环境,关键在于内层函数是否引用并持续访问外层变量。典型误区包括误认所有嵌套函数都是闭包、混淆闭包与语法关键字、等同闭包与内存泄漏;for循环中var声明的i在setTimeout输出5,源于函数作用域共享与变量提升;let、IIFE或setTimeout传参可解决;闭包会阻止垃圾回收被引用的变量,需及时移除监听器、避免过度捕获、必要时手动置null;ChromeDevTools的Scope面板中Closure分组可查看实际捕获的变量。
-
纯HTML无法实现鼠标跟随,必须用JavaScript监听mousemove事件获取clientX/clientY坐标并动态更新元素transform或left/top样式,CSS仅能辅助过渡动画和视觉表现,无法读取鼠标实时位置。
-
fetch是浏览器原生API,轻量但需手动处理错误、Cookie、超时等;axios是第三方库,开箱即用,内置拦截器、自动JSON序列化、超时控制等功能,适合中大型项目。
-
HTML加载慢主因非体积大,而是阻塞渲染、错误路径、base64内联、缺失压缩及file://协议限制;应通过Network面板定位瓶颈,用本地服务器替代双击打开。
-
原生对话框(alert/confirm/prompt)虽零依赖但阻塞主线程、无样式定制且兼容性差,现代项目应优先使用语义化可定制的<dialog>元素或轻量封装方案。
-
使用CSSGrid的grid-template-columns配合auto-fit和minmax可实现响应式图片墙:.image-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;}auto-fit会自动填充并拉伸列以适配容器,避免空白;minmax(200px,1fr)确保每列最小200px、最大等比分配。大屏显5列、平板3列、手机1列,无需媒体查询。与auto-fill不同,auto-
-
使用LiveServer插件是VSCode中运行HTML文件的最佳方式,安装后右键选择“OpenwithLiveServer”即可在浏览器中实时预览并自动刷新页面。
-
list-style-type仅对<ol>有效,常见值有decimal、lower-roman、upper-alpha和none;自定义序号需用counter-reset、counter-increment和::before;缩进应调padding-left而非text-indent;移动端序号截断需检查overflow和父容器min-width。
-
根路径href、语义化nav结构、aria-current标记当前页、external链接配rel="noopener"、动态路径由模板函数生成,确保全站链接一致可维护。
-
<address>标签专用于声明页面或文章的责任人联系信息,如作者、维护者邮箱或官网链接;仅允许嵌套<a>、<em>、<br>等短语内容,作用域限于最近<article>或<body>顶层,不可用于普通地址或跨作用域混用。
-
flex-grow控制子元素在容器有剩余空间时的扩展比例,flex-shrink决定空间不足时的收缩行为。默认flex-grow:0不扩展,flex-shrink:1可等比收缩。通过设置不同值可实现内容区自动填满、防止输入框压缩等布局效果。推荐使用flex简写如flex:1(等价于flex:110%)或flex:10auto,并配合min-width:0解决收缩失效问题,从而构建自适应弹性布局。
-
true+1===2成立,因为JavaScript在数值运算中将true隐式转换为1,再执行加法得2;加号优先数值转换而非字符串拼接,且布尔转数值规则为true→1、false→0。
-
overflow-wrap:break-word单独使用无效,需配合white-space:normal和明确的max-width才能触发换行;flex子项还需加min-width:0解除默认保护。
-
Map不是状态管理工具,而是用于数据映射与解耦的轻量载体,支持对象/Symbol作键、插入顺序保障,适用于缓存索引、运行时注册表、局部快照桥接等场景,可实现细粒度状态隔离与低开销中间层构建。
-
可视化性能时间线是性能问题的“X光片”,将耗时、阻塞、异常调用转化为可定位、可对比、可归因的视觉线索,支撑精准归因、跨层关联、小步重构与流程固化。