-
BEM在小项目中不必强制使用,应按复用性判断:仅当组件跨≥2个路由/父组件复用时才启用BEM建模;纯页面独有样式可用单class,工具类与BEM可并存但需分层清晰。
-
“闭包变量提升”并非标准术语,实为混淆变量提升(仅声明阶段预解析)与闭包延长变量生命周期(引用保持导致延迟回收);前端渲染中频繁创建闭包会加重内存压力,需通过编译优化与开发实践协同缓解。
-
border-image配合linear-gradient需正确写法:必须用border-image:linear-gradient(...),设border-width,border-image-slice:1fill,避免百分比和角度单位,并注意Safari≤15.6/Edge≤18不支持,圆角会导致渐变断裂。
-
用getBoundingClientRect()获取元素视口坐标,结合clientX/Y计算鼠标到四边距离并取最小值确定高亮方向,通过CSS变量动态控制border边框样式,配合mouseenter/mouseleave避免冒泡干扰。
-
CORS是浏览器强制实施的跨域安全机制,非可选方案;其核心判断依据是响应头中Access-Control-Allow-Origin是否精确匹配请求源,且与credentials=true互斥,预检请求需服务端正确响应OPTIONS。
-
Orfeo主题图片不居中主因是自定义CSS覆盖了.portfolio-item的inline-block显示逻辑;应禁用干扰样式,确保父容器text-align:center生效,并优先用max-width:100%和object-fit控制图片。
-
必须在<html>元素上设dir="rtl",因为浏览器仅在根元素带dir属性时才完整启用RTL感知机制;局部设置或仅用CSS无效,会导致光标错乱、选词反向、滚动条位置错误、下拉方向不翻转等问题。
-
JavaScript插件系统核心是通过registerPlugin注册插件、维护插件列表并调用init方法;2.系统提供on和trigger实现钩子机制,使插件能在特定生命周期介入;3.插件需遵循规范,包含name、init等属性,并通过init接收系统实例绑定事件或扩展功能;4.主系统支持extend方法供插件间共享能力,如添加formatDate工具函数;5.结合动态import可实现按需加载,提升灵活性。
-
密码不可跨域明文传递,须用WebCryptoAPI的PBKDF2在前端加盐派生密钥(iterations≥100000、SHA-256、后端下发盐),导出十六进制凭证供后端校验,全程内存操作并立即清空原始密码。
-
<p>@warn和@error仅在Sass编译阶段生效,@warn输出警告但继续编译,@error则中断编译;应将废弃逻辑封装进带legacy-前缀的@function并返回map,配合PostCSS扫描模板,确保提示精准到文件行号。</p>
-
box-shadow导致手机CPU高负载,因其每次变化均触发全层重绘,需CPU逐像素计算阴影;同属高代价属性的还有border-radius、background-image、filter(blur/drop-shadow)、gradient;应优先用transform/opacity替代,但需注意overflow:hidden、旧版微信内核、fixed定位等失效场景;infinite动画叠加全屏图片会持续占用GPU资源致发热,应限制迭代次数、改用background-image、空闲时暂停动画并重置tr
-
最简弹窗用alert(),但仅限开发调试;生产环境应手写DOM弹窗,结合CSS动画与可配置函数封装,注意状态管理、无障碍支持及兼容性。
-
flex-grow仅适用于单段填充+固定箭头的简单进度条;多步、箭头咬合或响应式场景下,其动态宽度与箭头所需的绝对像素偏移冲突,导致错位、断开或文字撑爆。
-
tsconfig.json必须同时启用allowJs和checkJs,否则JSDoc类型注释(如@type)在.js文件中不会被识别;strict:false用于渐进迁移,skipLibCheck:true加速构建。
-
用Map构建“字段名-验证器”映射引擎,核心是将各表单字段校验逻辑封装为可复用、动态注册/替换的函数,以字段名为键、验证函数为值存入Map,实现结构与规则解耦,适配配置化表单、多语言及动态策略场景。