-
浅拷贝只复制第一层属性,嵌套引用仍共享内存;深拷贝递归复制所有层级,完全独立。浅拷贝方法有展开运算符、Object.assign()、slice()/concat(),但不支持嵌套及特殊类型;深拷贝需处理递归、特殊类型和循环引用,推荐使用_.cloneDeep()或structuredClone()。
-
CSS的transition属性通过设置property、duration、timing-function和delay实现元素状态变化的平滑动画,如:hover时颜色渐变或尺寸缩放;可单独指定属性或使用all对多个属性应用过渡,并配合ease、linear等速度曲线控制动画节奏,提升交互体验。
-
Bootstrap的container类会自动添加左右内边距(padding),导致内容两侧出现白边;只需移除该类或改用container-fluid即可消除默认间距。
-
直接给HTML的<area>标签添加CSS样式无效,因为<area>本身不参与视觉渲染;要实现热点高亮效果,需通过以下步骤:1.将图片放在一个position:relative的容器内作为定位参照;2.为每个<area>创建一个可样式化的替身元素(如div或span);3.根据coords属性计算并使用position:absolute精确设置替身的位置和大小;4.设置替身默认透明并关闭pointer-events以避免遮挡事件;5.使用JavaScript监听<
-
引入CSS到HTML主要有三种方式,最推荐的是外部样式表,其次是内联样式在特定场景下使用;2.外部样式表通过<link>标签引入独立的.css文件,实现结构与样式的分离,便于维护、复用和缓存,适用于大多数项目;3.内联样式通过在HTML元素的style属性中直接写CSS规则,优先级最高且即时生效,适合快速调试、JavaScript动态修改、邮件模板或特殊覆盖需求;4.内联样式的优点包括优先级高、便于JS操作和即时反馈,缺点是可维护性差、无复用性、代码冗余、破坏分离原则且无法被浏览器缓存;5.外
-
内联样式维护困难因其需全局搜索替换、无法复用、不支持预处理器、调试难定位;link优于@import因并行加载、支持媒体查询;CSSModules等通过哈希类名解决作用域冲突。
-
requestAnimationFrame更适合动画因其与屏幕刷新率同步、自动暂停省电、需配合时间戳防速度不均;CSStransition适合简单属性变化,而requestAnimationFrame适合复杂交互控制。
-
遮罩层必须用position:fixed或absolute;推荐fixed配100vw/100vh,避免滚动露底;z-index失效需检查祖先transform/will-change创建的层叠上下文;关闭弹窗应监听遮罩click并判断e.target===this;移动端需加touch-action:none提升触摸体验。
-
HTML5的inputtype="month"提供原生年月选择功能,格式为“YYYY-MM”,支持设置初始值、JavaScript动态赋值与创建,需兼容旧浏览器并注意表单提交时后端按字符串解析。
-
a:hover伪类用于定义鼠标悬停时链接的样式,通过设置颜色、下划线、背景色等属性提升交互体验,结合transition和transform可实现平滑动画效果,同时需注意a:link、a:visited、a:active和:focus的LVHA顺序以确保样式优先级正确,避免特异性冲突、性能损耗和无障碍问题,推荐使用transform和opacity优化动画性能,并保持效果简洁自然,以提升用户体验且符合可访问性标准。
-
事件委托的核心原理是利用事件冒泡机制,将事件监听器绑定在父元素上,通过event.target.closest()和matches()精确识别目标元素,避免为动态元素重复绑定,但不适用于focus/blur等不冒泡事件。
-
通过Flexbox布局,将容器设为display:flex并配合justify-content:center与margin-left:auto,可实现左侧导航栏绝对水平居中、右侧图标紧贴其右且不破坏居中效果。
-
Flexbox通过flex-grow、flex-shrink和flex-basis控制子元素伸缩行为,实现响应式布局:flex:1常用于均分空间,结合媒体查询可调整不同屏幕下的布局表现,如等宽分布、固定与自适应组合、移动端堆叠等;需注意父容器设display:flex,避免width与flex-basis冲突,并用min-width防止内容重叠,提升布局灵活性。
-
JSON操作核心是JSON.parse()和JSON.stringify(),需防范非字符串输入、BOM字符、循环引用、特殊值丢失等问题,replacer/reviver是安全扩展点,严格遵循JSON规范(双引号、无尾逗号)。
-
使用CSStransition实现响应式动画需优先选择transform和opacity等高性能属性,避免布局重排;结合媒体查询控制断点动画,合理设置过渡时间与缓动函数,并通过JavaScript类名切换替代:hover以提升移动端兼容性。