-
Object.freeze仅浅冻结,嵌套对象仍可修改;deepFreeze需递归实现并严格在模块加载最前端执行,否则引用已缓存导致失效;冻结前须切断原型链、禁用代理与访问器。
-
HTML结构直接影响首屏渲染性能:未压缩HTML、同步脚本、内联样式、DOM节点过多、px单位滥用等均导致延迟与掉帧;需压缩HTML、移除阻塞资源、用虚拟滚动/Canvas、vh/vw单位及动态rem适配,并从HTML顶部埋点监控。
-
JavaScript性能优化的核心是减少主线程阻塞、降低资源加载开销、提升执行效率;需代码分割与按需加载、合理使用defer/async、拆分长任务、启用虚拟滚动、节流防抖及善用原生API。
-
justify-content:space-between对末行无效是因为它仅按每行子项总宽与容器宽计算等分空隙,末行子项少导致空隙右堆;伪元素占位需满足:父容器flex+wrap、content:""、flex:00同子项宽。
-
判断一个变量是否为数组最推荐的方法是使用Array.isArray(),因为它准确、可靠且能正确处理跨iframe等不同执行环境下的数组判断;2.typeof不能用于判断数组,因为它对所有对象(包括数组、普通对象、null)都返回"object",无法区分具体类型;3.instanceofArray在跨执行环境(如多个iframe)时会失效,因为不同环境中的Array构造函数不相等,导致判断错误;4.Object.prototype.toString.call()也能正确判断数组且跨环境安全,但语法较冗长
-
justify-content在图表容器中无效的主因是未作用于直接子元素,因图表库动态生成多层嵌套节点;须用外层flex容器包裹图表初始化节点,并确保目标图表为其直系子元素。
-
:last-child在多列布局中失效,因其匹配父容器最后一个子元素而非每行末尾;应改用:nth-child(3n)清除每行最右列右边距,或Grid的gap属性、Flex的justify-content等更可靠方案。
-
使用gap与repeat(auto-fill,minmax())实现响应式网格布局,通过grid-template-columns设置最小列宽并自动填充,gap确保项目间距均匀;为避免边缘不对齐,可采用justify-content:space-between配合max-content控制分布,或保留1fr实现等宽自适应;配合padding替代margin防止溢出,确保布局整齐无滚动条。
-
position:relative偏移不脱离文档流,元素仍在原位置占位;偏移量作用于自身原始位置,父容器无需定位;z-index有效但会创建层叠上下文;适合±20px内微调,推荐配合transform使用以提升性能。
-
CSS需通过HTML接入而非直接打开,正确方式是用<link>引入外部文件、<style>嵌入或行内style属性,优先使用外部CSS;路径错误、file://协议限制、缓存及编码问题常导致样式不生效。
-
浮动布局问题表现为父容器塌陷、文字环绕异常等,根源是浮动脱离文档流;应通过触发BFC(如overflow:hidden或display:flow-root)包裹子项,用clearfix伪元素清除浮动,并优先采用flexbox或Grid替代浮动。
-
背景图不显示主因是路径解析错误,需按CSS文件位置而非HTML位置确认;background-size不生效常因被简写属性重置或容器无高度;HTML5语义标签需显式设宽高防塌陷。
-
align-self不生效的主因是父容器交叉轴无固定尺寸;其次被align-items:stretch拉伸掩盖;再者margin:auto会优先覆盖;最后父容器未启用Flex布局也会导致完全失效。
-
直接用:hover切换background-image会闪屏,因浏览器不预加载hover图,首次请求导致延迟;且background-image不支持transition,须用双层容器opacity动画或伪元素实现淡入。
-
position:absolute易使登录框“飘”出视口,因其默认相对于最近非static祖先定位;若父容器未设position:relative,则回退至视口定位,且top:50%;left:50%仅锚定左上角,不加transform:translate(-50%,-50%)会导致偏移。