-
前端路由依靠history.pushState与hashchange实现,不依赖服务端跳转;核心为拦截URL变化并更新视图而不刷新页面,分history模式(需服务端fallback)和hash模式(天然兼容但URL不美观)。
-
JavaScript动态排序HTML列表需将NodeList转数组,用trim()和localeCompare()处理文本;表格排序应仅操作tbody,结合data-sort属性与类型转换;大数据量或复合操作须后端排序;CSSorder仅影响视觉,不改变DOM顺序。
-
JavaScript异步方案选择取决于场景:回调适用于单层简单操作,Promise解决嵌套与错误捕获,async/await提升可读性但需注意串行误用;三者语义不同,多次触发场景应选EventTarget等替代方案。
-
当前页高亮必须通过HTML类名(如class="active")配合CSS实现,:hover仅用于悬停交互反馈,:active仅用于点击瞬间视觉反馈,二者均无法持久标记当前页面。
-
推荐使用ES6class+extends实现继承,语义清晰且兼容性好;子类constructor中须首行调用super(),通过super.方法名()调用父类方法;底层仍基于原型链,class是语法糖。
-
不能,overflow:hidden并未清除浮动,而是通过触发BFC使父容器重新包裹浮动子项,解决高度塌陷;其副作用明显,现代项目应优先使用display:flow-root或flex/grid布局。
-
浮动元素脱离标准文档流,允许内容环绕,具有包裹性并触发BFC,需清除浮动防止塌陷;2.行内元素遵循文本流,不独占行,无法设置宽高和垂直外边距,适合文本级样式;3.浮动用于图文环绕和早期多栏布局,行内元素用于局部内容组织;4.现代布局中浮动多用于特定环绕效果,复杂结构推荐使用Flexbox或Grid。
-
Symbol是JavaScript中唯一、不可变的原始类型,用于创建防冲突的私有属性键或对接语言机制(如Symbol.iterator);它不参与隐式转换,不可枚举,不被JSON序列化,需用方括号访问。
-
使用CSS@keyframes创建旋转加载动画,结合JS控制显隐;2.通过AJAX请求时机显示或隐藏加载器;3.利用CSS类切换实现淡入等复杂动画,提升页面流畅度与用户体验。
-
使用catch捕获Promise链错误,async/await需try/catch处理异常,避免裸露Promise.reject(),并发任务用Promise.allSettled()实现错误隔离,确保异步错误始终可捕获。
-
SPA的核心是JavaScript接管路由、动态更新DOM、服务端仅提供单一HTML入口;使用hash路由存在SEO差、导航不精准等缺陷,现代SPA必须用HTML5HistoryAPI并配置服务端fallback。
-
使用float实现商品卡片布局,通过设置.product-card向左浮动并控制宽度与边距,使多张卡片横向排列且支持响应式调整,配合overflow:hidden避免父容器塌陷,适用于兼容旧浏览器的静态展示场景。
-
最快方式是在index.html中插入语义化<sectionid="services">区块,同步更新导航href="#services",并确保CSS支持锚点滚动与响应式适配。
-
能,Tailwind等工具类框架通过原子化class替代手写CSS文件,依赖配置统一管理样式、响应式、深色模式及兼容性处理,需正确配置PostCSS插件与编辑器支持。
-
页面宽度超出屏幕主因是默认content-box盒模型使padding和border额外增加宽度;应全局设box-sizing:border-box,并配合max-width、overflow-x:auto及清除常见撑宽源。