-
TailwindCSS通过预定义的margin、padding和space类,在HTML中直接控制布局,提升开发效率;其基于4px缩放比例的工具类可快速设置间距,如mt-4、px-6等,space-x/y用于子元素间隔,支持响应式和自定义配置,使样式管理更直观高效。
-
border-radius动画失效主因是起止值类型不一致或不可插值,须统一用数值单位且四角写法匹配;应避免auto等非数值值,优选class切换而非JS直改,并注意Safari兼容性问题。
-
前端路由异步拦截核心是利用路由守卫配合Promise控制导航,确保权限校验、表单提示、数据预加载等关键操作完成后再跳转,并需超时控制与错误处理。
-
触发BFC是解决float子元素不换行的关键,需配合box-sizing:border-box和合理width控制;现代推荐display:flow-root,老项目可用overflow:hidden或伪元素清浮动。
-
crossorigin不是开关,必须与服务器CORS响应头配对生效;仅img、script、link(stylesheet/font)、video、audio支持,其他标签无效。
-
应优先使用transform:translate()替代left/top实现hover平移,因其仅触发合成层更新、由GPU加速;需在默认状态设transition:transform,hover中仅修改transform值,并注意display类型与多transform合并写法。
-
用--radius自定义属性统一管理圆角是最轻量易维护的方式,需全局引用、避免硬编码,并通过calc()或分层变量(如--radius-btn)应对差异化需求,同时注意Safari兼容性及响应式缩放问题。
-
ES6的class是构造函数和原型机制的语法糖,未引入新OOP模型;其本质是构造函数+prototype方法挂载,静态方法属构造函数自身,继承通过__proto__链接原型与构造函数,getter/setter和私有字段仍基于原型或闭包实现。
-
JavaScript垃圾回收由引擎自动执行,基于可达性判断对象是否存活;V8采用分代式GC(Young代用Scavenge,Old代用Mark-Sweep-Compact)与增量标记;DevTools的console.log会隐式持有对象引用阻碍回收。
-
答案是使用JavaScript控制CSS类或CSS变量切换主题,并结合localStorage持久化。通过定义:root变量或主题类,动态修改属性或class实现样式切换,页面加载时从localStorage读取并应用用户偏好,确保主题持久生效。
-
JavaScript实现基础年龄验证需用newDate()精确计算周岁,避免仅比年份;校验input.value非空且格式合法;提交前preventDefault并显示自定义弹窗;服务端必须复现相同逻辑校验。
-
防抖与节流机制不同:防抖是“停手后执行一次”,节流是“固定频率最多执行一次”;防抖需闭包保存timer、清除重设、正确传递this和参数,并支持immediate模式。
-
浮动元素按HTML顺序排列,左浮左起右排,右浮右起左排。通过margin可调整间距与微调位置,结合position:relative能精确定位,避免使用absolute以免脱离文档流。需用clear或BFC清除浮动影响,保持布局稳定。
-
用SassMixin实现按钮样式复用:将背景色、尺寸等可变参数设为mixin参数并带默认值,固化过渡、盒模型等不变逻辑;统一用&:hover等嵌套写法避免权重冲突;disabled状态需同时处理opacity、pointer-events和cursor;颜色通过CSS自定义属性解耦,高频变体用@extend减少冗余代码。
-
应明确声明所有变量并启用严格模式,避免隐式全局变量和作用域链动态扩展;优先使用const/let、ES模块、TypeScript及ESLint等工具,在编译和构建阶段拦截未声明变量问题。