-
现代JavaScript引擎对闭包本身性能友好,但不当使用会干扰JIT内联、加剧变量逃逸、增加GC压力;应优先用let/const、避免闭包持有大对象、保持变量类型一致。
-
poster仅在视频未播放、元数据未加载或加载失败时生效,loadedmetadata触发后浏览器可能立即用首帧覆盖;首帧截取须等seeked事件,而非loadeddata。
-
导航栏下拉菜单不显示的常见原因是JavaScript未初始化或父容器overflow:hidden导致裁剪;需检查JS初始化、data属性、overflow样式、z-index及display/visibility设置。
-
box-sizing:border-box可解决grid-template-columns因padding导致的错位问题,因其使width包含padding和border,确保25%或fr单位严格按可见宽度分配,避免溢出、换行或列宽不均。
-
最可控的老旧内核兼容方案是用CSS.supports()运行时检测并动态注入降级样式,优先检测display:grid、margin-inline-start等支持率断层明显且有等效写法的属性。
-
可用纯HTML+CSS实现Google首页静态视觉结构:顶部导航栏、居中搜索区(max-width:584px+flex居中)、底部flex布局的工具栏,关键用margin:auto、max-width和display:flex控制响应式布局。
-
sort默认按字符串Unicode排序导致数字错乱;数字排序需传(a,b)=>a-b;对象按属性排序要处理undefined,字符串用localeCompare,多级排序用短路逻辑。
-
:focus没反应最常见原因是CSS优先级被覆盖或元素未获焦点;需检查可聚焦性、伪类顺序、UI库替代方案、移动端兼容性,并优先用:focus-within或focusin事件替代。
-
用novalidate属性可彻底关闭表单原生验证,只需在<form>标签中添加novalidate(如<formnovalidate>),它优先级最高、无需JS、仅作用于当前表单。
-
iOSWebView中无法直接触发HTML5下拉刷新,需通过touchstart/touchmove拦截并e.preventDefault()阻止原生橡皮筋效果,配合overscroll-behavior-y:contain及正确滚动容器配置,同时用Math.abs(window.scrollY)<1替代scrollY===0避免iOS浮点误差。
-
JavaScript密码学应优先使用WebCryptoAPI(浏览器)或Node.jscrypto模块(服务端),禁用手写逻辑或CryptoJS;推荐AES-GCM对称加密、RSA-OAEP混合加密及ECDSA签名,密钥须安全生成与管理。
-
Array.prototype.push本身不会栈溢出,问题在于调用方式:配合apply或扩展运算符批量传入海量元素时,引擎需将每个元素作为独立参数压栈,超出V8等引擎约65536的参数上限即报RangeError。
-
grid-template-areas需每行引号内区域名数量相同且空格分隔,否则声明失效;控制宽度靠grid-template-columns配合minmax();display:contents会使grid-area失效;响应式重排须同步更新areas、columns和rows。
-
HTML5文档封面可通过语义化标签构建结构、CSS全屏样式控制、内联图片嵌入、锚点跳转及响应式适配实现;具体包括用<sectionid="cover">定义封面区,Flex居中文字,<img>替代背景图,#document-body锚点跳转,并通过媒体查询优化移动端显示。
-
ES6是JavaScript运行逻辑与思维的重校准,核心特性包括:①let/const提供块级作用域与TDZ;②箭头函数继承词法this;③解构赋值与模板字符串提升语义表达;④扩展运算符与剩余参数统一展开/收集逻辑。