-
DOM操作提供六种核心技巧:一、createElement+appendChild添加元素;二、insertBefore精确插入;三、replaceChild替换节点;四、removeChild删除子元素;五、innerHTML/textContent批量更新;六、cloneNode复制结构。
-
快速排序通过三数取中选基准、三路划分处理重复元素、小数组切换插入排序及尾递归优化,可显著提升性能与稳定性。
-
通过CSS的font-smoothing属性可优化字体渲染,-webkit-font-smoothing用于苹果设备,antialiased使文字更细更清晰,subpixel-antialiased为系统默认较粗;Firefox需用-moz-osx-font-smoothing设为grayscale以统一效果;配合text-rendering:optimizeLegibility可提升可读性,建议根据内容层级灵活设置避免标题过细,实现最佳视觉平衡。
-
HTML5中绘制半圆有四种方法:一、用border-radius+overflow裁切上半圆;二、用左右圆角+overflow裁切左半圆;三、用clip-path的circle()函数定义左/右半圆;四、用SVG的arc命令绘制精准半圆。
-
auto-fill会保留空轨道以保持列结构,适合画廊等需对齐的布局;auto-fit则拉伸实际内容列以填满容器,避免空白,适合动态内容。两者结合minmax可实现灵活响应式网格,无需媒体查询即可适应不同屏幕尺寸,提升布局效率与视觉效果。
-
掌握grid-auto-fit和minmax()是实现响应式卡片网格的关键,通过设置网格容器的display:grid和grid-template-columns结合minmax()函数,可自动调整列数以适应容器宽度。
-
生成器函数是JavaScript中可暂停和恢复执行的特殊函数,通过function*定义并返回迭代器对象,使用yield逐步返回值,适合处理惰性求值与异步流程。
-
JavaScript调试最常用、最高效的方式是浏览器开发者工具,它内置在Chrome、Edge、Firefox等现代浏览器中,无需额外安装即可实时查看代码执行、检查变量、设置断点、监控网络请求。
-
前端路由分Hash和History两种实现:Hash靠location.hash变化与hashchange事件,兼容性好但URL带#;History用pushState/replaceState和popstate,URL干净需服务端fallback;手动实现需维护路由表并监听路径变化;主流框架路由库均基于二者封装。
-
可通过JavaScript设置value属性为空、innerHTML清空容器、textContent清除文本、表单reset按钮重置或jQuery的val()/empty()方法清空HTML元素内容。
-
静态方法用static关键字定义,属类本身,不可访问this和实例属性;如Utils.formatDate();误用会导致内存浪费或undefined错误;静态方法间调用用类名或this.constructor。
-
JavaScript解构赋值在交换数组元素时,右侧表达式先求值、左侧赋值按顺序执行;当左侧包含依赖于已修改索引的动态访问(如a[a[0]]),会导致索引语义错乱,从而交换失败。
-
JavaScript单元测试非必需但维护协作时不可或缺;Jest因开箱即用、配置简单、生态成熟成为入门首选,需注意beforeEach中mockClear防污染,优先测试逻辑密集/多处调用/曾修bug的函数。
-
移动端position:sticky不生效主因是父容器限制或浏览器兼容性问题:iOSSafari15.4+才完整支持overflow非visible祖先内的sticky;AndroidChrome中transform/will-change/filter会禁用sticky;需避免父级overflow:hidden/auto/scroll及硬件加速属性,优先用top:0并配合height/滚动上下文,小屏降级fixed+JS动态适配。
-
答案:JavaScript动画通过缓动函数实现自然过渡,利用非线性数学曲线模拟真实世界运动。核心原理是将线性时间进度映射为非线性动画进度,结合requestAnimationFrame在每帧计算缓动后的进度值,从而控制属性变化。线性动画因速度恒定显得生硬,而缓动函数如ease-in-out可模拟加速减速过程,提升界面流畅感与用户心理舒适度。cubic-bezier允许自定义三次贝塞尔曲线,通过调整控制点精确塑造动画节奏,支持超出0-1范围的值实现过冲效果。除CSS内置时序函数外,JS可通过原生raf+自定