-
Array.prototype.findLastIndex是同步方法,需先异步加载配置数据(如fetchConfigs),再在已排序的数组中按优先级规则(如环境>租户>全局)反向查找首个匹配项;关键在于保证数据就绪与顺序正确,而非让findLastIndex异步化。
-
作用域链变量查找按“当前作用域→外层函数作用域→全局作用域”顺序线性搜索,逐层匹配;越靠后的层级查找越慢,因需更多比较、缓存命中率低,且全局变量还受属性动态性与内存布局拖累。
-
答案:npm、Yarn和pnpm是主流JavaScript包管理工具,分别以生态、速度和磁盘效率见长,选择应根据项目需求与团队习惯,并统一工具及提交lock文件确保一致性。
-
WeakRef无法直接包裹WebGLTexture,因其是宿主对象且不受JSGC管理;可行方案是用WeakRef持有HTMLImageElement或轻量元数据对象,并通过FinalizationRegistry在对象销毁时调用gl.deleteTexture(),且须先校验gl.isTexture()。
-
在document上用addEventListener('keydown',handler,true)监听全局快捷键最可靠,需用e.preventDefault()阻止默认行为,通过e.ctrlKey等判断组合键,避免与浏览器冲突,并在React/Vue中正确管理生命周期。
-
<p>里不能放<div>,因为HTML解析器会自动闭合<p>,将<div>移至外部,导致DOM结构变为<p></p><div>内容</div>,使CSS选择器p>div失效、JS查询失败、样式错乱。
-
真正能靠纯CSS实现可靠等高的方案只有display:flex和display:grid;浮动方案本质是用padding-bottom与margin-bottom抵消制造视觉假象,依赖overflow:hidden裁剪,并非真等高。
-
text-overflow:ellipsis在Flex中失效并非bug,而是因Flex子项默认min-width:auto阻止压缩,导致无法触发溢出;必须在Flex子项上显式设min-width:0,并配合width/max-width、white-space:nowrap、overflow:hidden三者同级生效。
-
:hover在鼠标悬停时生效,用于实现如变色、下划线等交互效果;:active在元素被点击激活的瞬间触发,常用于模拟按钮按下状态。两者分别对应悬停与点击动作,持续时间不同,可同时存在于同一元素上,建议按LVHA顺序书写以避免样式冲突。
-
localStorage和sessionStorage仅支持字符串,存对象需JSON序列化,取值前须判空防解析null/undefined报错;更新嵌套数据需读-改-写全量覆盖;sessionStorage随tab关闭清空,localStorage长期持久化;禁存敏感信息,避免高频写入。
-
tbodytr:hover有效需满足:HTML中显式存在tbody标签,且结构符合标准表格(thead/tbody/tfoot);触屏设备默认不支持hover,需用@media(hover:hover)或touchstart/touchend模拟;避免pointer-events:none、优先级冲突及transition:all引发的布局抖动。
-
使用CSSGrid可高效实现图文混排。首先构建包含图片和文本的容器,通过display:grid和grid-template-columns设置两栏布局,结合gap与align-items优化间距和对齐;利用:nth-child配合grid-column实现奇偶行图片左右交替;在移动端通过媒体查询改为单列堆叠,并用order调整显示顺序,提升响应式体验。Grid的二维控制能力使布局更灵活精准。
-
animation-delay用于设置动画开始前的延迟时间,单位为秒(s)或毫秒(ms)。正值延迟启动,0为立即开始,负值则跳过动画前段。可为多个动画分别设置逗号分隔的延迟值,常用于控制页面元素依次出现、轮播图动画、表单提示等场景,提升视觉节奏与用户体验。
-
box-shadow动画直接加transition无效,因它是复合属性,浏览器无法插值结构不同的阴影值(如none→有阴影);必须保持参数数量、顺序、单位一致,且初始状态也需设为rgba透明阴影。
-
shape-outside必须搭配float才能生效,因浏览器仅对float:left/right元素计算其环绕区域;无float则完全忽略,属规范强制要求。