-
lang属性必须写在<html>标签上才有效,写在<body>或子元素中无效;charset和lang缺一不可,且位置、格式、大小写均影响解析与渲染效果。
-
中间固定、两边自适应的正确写法是左右项设flex:1,中间项设flex:00240px;不能只给中间设flex:00auto,因其仅固定自身宽度,无法驱动两侧伸缩,且父容器必须为display:flex。
-
navigator.share仅支持Chromium内核浏览器(Chrome76+、Edge79+、SamsungInternet12.2+)和iOS/iPadOSSafari16.4+;Firefox、旧版Safari及桌面Safari不支持,且须HTTPS/localhost安全上下文。
-
闭包封装Symbol键与操作逻辑,通过初始化函数返回get/set/reset接口,结合globalThis命名空间容器实现隐式、不可枚举、防误触的状态共享。
-
多级排序需将比较逻辑压缩进二元函数:先比主字段,相等再比次字段,依此类推;返回负数、正数或0决定顺序;须防空值与类型陷阱,用短路运算(如||、?:)串联层级。
-
根本原因是CSS层叠规则生效,scoped仅通过属性选择器隔离组件内样式,无法阻止第三方全局CSS覆盖;第三方样式权重更高、加载更晚或重置基础标签导致覆盖。
-
最可靠方案是用JavaScript遍历tr和td,结合textContent与includes()模糊匹配,需控制行数在2000以内;超量时应改用数据驱动模式。
-
可通过PerformanceAPI捕获首帧与LCP时机,结合交互延迟监测(>100ms)和超时兜底(FCP>1800ms/LCP>2500ms/2.5s无LCP),主动降级非关键资源、调整预加载策略并内联关键内容,全程可监控可回滚。
-
HTML注释无法阻止JavaScript执行或CSS应用,因其仅影响HTML解析器;应改用type="text/plain"屏蔽脚本、disabled属性禁用样式,或display:none隐藏HTML结构。
-
referrerpolicy="no-referrer"仅对当前元素触发的单次请求生效,不继承、不传递,新页面后续请求仍按自身策略发送Referer;它对window.location跳转、<iframe>加载和未显式设置的表单提交无效,验证须通过服务端原始请求头确认。
-
跨域iframe通信必须使用window.postMessage(),发送方调用iframe.contentWindow.postMessage(),接收方监听message事件并严格校验event.origin和event.source;document.domain已基本淘汰;服务端代理或同源中转页可作为补充方案。
-
递归是函数调用自身解决问题的技巧,需满足基础情况(终止条件)和递归情况(规模递减),典型步骤为确定basecase、找出递推关系并编码实现,常见陷阱包括缺失basecase或未缩小问题规模。
-
loop属性仅对video和audio有效,必须作为布尔属性使用(如<videoloop>或video.loop=true),且需配合muted才能在现代浏览器中正常循环;iOSSafari还需playsinline并依赖用户手势触发play()。
-
Chrome和Firefox支持但Safari不支持的选择器包括:has()(Safari15.4+才支持)、:is()/:where()的复杂嵌套(如:is(.a,.b):hover在Safari16.4前被忽略),以及部分伪类组合和属性选择器。
-
preload="none"并非完全不加载,而是延迟加载——仅当video已插入DOM、src已设且未调load()、用户未触发播放时才真正省流量,适合非首屏或低点击率视频。