-
Edge18及更早版本不支持IntersectionObserver,需运行时检测并降级;ChromiumEdge79–83对ResizeObserver支持不全;Edge18的fetch不支持credentials和AbortController;CSSGrid/subgrid存在显著版本断层;应坚持运行时检测+最小降级。
-
WebLocksAPI通过命名锁协调异步操作,确保共享资源访问的串行化。使用navigator.locks.request('lockName',callback)申请锁,回调执行完毕后自动释放。多个请求按顺序排队,前一个释放后下一个获得锁,避免竞态。适用于localStorage或IndexedDB等场景,如计数器递增时保证顺序执行。合理设计锁粒度,避免过粗阻塞或过细难维护,不同资源用不同锁名。不建议在锁内请求其他锁以防死锁,可结合AbortSignal实现超时控制。API轻量但需注意持有时间与嵌套逻辑
-
justify-content在Grid容器中不起作用,是因为容器未设置display:grid(或inline-grid);它控制整个网格在行内轴上的对齐,而justify-items控制单元格内容对齐,二者作用域不同。
-
JavaScript的Date.prototype.getMonth方法返回的是0到11的月份值,需加1才能得到实际月份。1.getMonth()返回0-indexed值,1月为0,12月为11;2.获取当前或指定日期的月份时需注意时区问题;3.使用数组映射或Intl.DateTimeFormat将数值转为可读月份名;4.getMonth()基于本地时区,getUTCMonth()基于UTC时间,根据业务需求选择使用。
-
推荐用display:flex实现横向列表,只需在ul上设置display:flex即可自动横向排列,支持响应式、等距对齐;float方案需手动清浮动且兼容性差,仅适用于IE8/9等老旧环境。
-
includes比多个||更可靠,因其严格相等、支持NaN、逻辑集中;改写为constvalidColors=['red','blue','green'];if(validColors.includes(x)){...};注意字符串和类数组需分别处理,大数组高频查询建议用Set。
-
CoreWebVitals由浏览器根据真实用户行为计算,HTML仅是影响因素之一;<linkrel="preload">可加速LCP关键资源加载,width/height和decoding="async"有助于防控CLS,而过度内联CSS反可能延迟FCP。
-
grid自动排列留空是因为跨越轨道的项不触发回填,后续项按源顺序和当前行剩余空间推进;启用rowdense或columndense可密集填充空位,但会破坏DOM与视觉顺序一致性。
-
type="email"不可信,因其仅按RFC5322极小子集校验,放行user@domain..com等无效格式,且存在兼容性问题;需JS补强+后端兜底三层验证。
-
HTML页面乱码主因是编码声明与文件实际保存编码不一致,需确保编辑器保存格式、<metacharset>标签、HTTP响应头三者统一为UTF-8且无BOM。
-
:active伪类仅在鼠标按下未松开或触控持续时生效,无法实现点击后持久高亮;正确用法需紧跟:link/:visited后、避免复杂选择器;持久状态应通过class、:target或路由逻辑实现。
-
本文介绍如何在两个结构相同但顺序不同的二维字符串数组中,精准定位所有值不一致的元素,并以{row1,col}和{row2,col}的配对形式返回其行列索引。核心在于基于主键(如姓名)建立行映射,再逐列比对。
-
JavaScript代码压缩通过AST分析实现语义无损精简,TreeShaking则基于ES模块静态结构剔除未使用导出;二者协同先删死代码再压活代码。
-
<p>用data-属性动态标记用户活跃状态,应存ISO时间戳(data-last-active)和标准化状态值(data-status),避免硬编码文字或误用title/alt;CSS可静态显示服务端生成的相对时间文案,JS则用Intl.RelativeTimeFormat安全更新。</p>
-
HTML5没有5.2或5.3官方版本号,所谓“HTML5.2/5.3跳转语法”是误传;跳转仍依赖<a>、location.href、history.pushState()等长期稳定API,实际变化源于浏览器对安全策略(如Same-OriginPolicy、opener漏洞防护)的强化执行及跨规范(Fetch、CSSScrollBehavior)的渐进支持。