-
Sass5.0+废弃@import是因其破坏模块化:全局作用域导致命名冲突、重复编译、无法选择加载、无命名空间;@use实现作用域隔离,@forward用于封装接口而非简单转发。
-
浮动元素底部不齐是正常行为,伪等高需用padding-bottom+负margin-bottom配合overflow:hidden裁剪实现,IE6/7需zoom:1触发hasLayout,现代项目应优先使用flex或grid。
-
CSS-in-JS中媒体查询应直接用模板字符串写入,如@media(min-width:${tablet}),使用字符串常量而非动态表达式以保障服务端渲染与样式提取正确。
-
现代JavaScript项目应选对工具链:新项目用Vite(启动快、热更新准),旧Webpack项目或需IE11/UMD/动态require则留用Webpack;vitebuild默认用Rollup处理define、public目录和hash文件名;部署前须检查base路径、outDir与Nginx配置一致、HTML中script标签是否由Vite自动注入。
-
IndexedDB是浏览器内置的NoSQL数据库,用于JavaScript异步存储大量结构化数据。通过indexedDB.open()创建或打开数据库,并在onupgradeneeded中定义对象仓库。数据操作需通过事务进行:使用add()添加、get()读取、put()更新、delete()删除。支持离线存储与持久化,适合高性能Web应用,但API复杂,建议封装或使用Dexie.js等库简化开发。
-
防抖是事件停止触发一段时间后执行一次,适合搜索输入等只关心最终结果的场景;节流是固定时间间隔最多执行一次,适合滚动监听等需稳定节奏的场景。
-
语义化标签需按内容角色而非样式选用:article用于可独立分发的内容单元,section用于同主题逻辑分组,aside用于非核心补充信息,nav专用于导航链接集合。
-
调大文字需同步调整line-height等依赖尺寸。优先用无单位line-height(如1.5)保持比例,配合rem/em设置margin/padding,表单元素需重设padding和height,并检查computed值继承链。
-
使用Flexbox制作数据时间轴效率高且弹性好,1.它通过flex-direction控制主轴方向实现垂直或水平布局;2.利用justify-content和align-items精准对齐元素;3.结合伪元素绘制时间轴线与圆点提升视觉效果;4.响应式设计依赖媒体查询调整布局方向与间距;5.复杂内容可通过嵌套Flex布局实现内部元素灵活排列。
-
JavaScript事件循环按“宏任务→清空微任务队列→下一宏任务”循环执行;setTimeout(0)不立即执行,因需等当前宏任务及所有微任务完成;Node.js有6阶段模型且含process.nextTick,浏览器则无。
-
本文介绍一种简洁、可复用的JavaScript方法,用于遍历任意<select>元素的所有<option>,将其value属性批量更新为对应textContent,从而避免手动维护不一致的值,适用于含多个表单的复杂页面。
-
先写测试用例再实现代码,使用Jest或Mocha组织测试套件与用例,通过断言验证输入输出,利用mock隔离依赖,覆盖正常及边界场景,确保测试独立可重复,提升代码质量。
-
现代浏览器禁止无用户交互的视频自动播放,尤其有声视频;需静音+用户交互后JS调用play()并降级处理。
-
JavaScript地理定位API必须经用户明确授权才能使用,首次调用前可用permission.query()检查状态,需在用户触发相关功能时说明用途并请求权限,拒绝后应提供手动输入等降级方案,且位置数据须遵循最小必要原则处理。
-
HBuilder中HTML页面无法正常运行的解决方法包括:一、确认文件扩展名为.html;二、通过“运行→在浏览器中运行”预览;三、在“工具→选项→默认浏览器”中设置默认浏览器;四、检查资源路径是否相对于项目根目录正确;五、对需HTTP支持的功能,使用“内置Web服务器运行”。