-
正则{n,m}限制的是Unicode码点数而非字节数;若需校验UTF-8字节长度,必须配合后端编码计算,前端正则仅能粗略拦截。
-
Map迭代天然无序,需显式排序构建有序字典:可通过key切片排序、维护插入顺序或使用有序map库实现,避免依赖偶然顺序。
-
正确做法是用position:absolute;left:-9999px视觉隐藏文件输入框以保留可交互性,再通过按钮点击事件同步调用其click()方法触发选择对话框,并监听change事件获取FileList。
-
TailwindCSS适合什么项目?不适合什么项目?Tailwind不是“万能加速器”,它真正提效的前提是:你有至少3个中等复杂度页面,且团队愿意统一用原子类表达设计意图。小项目(比如单页登录表单、A/B测试页)硬套Tailwind,反而会因全量扫描content路径、加载未用类、热更新卡顿而拖慢开发。适合:中后台系统、Next.js/React/Vue项目、需要高度定制品牌色与间距体系的业务线不适合:仅需兼容IE11的老系统、静态营销页(bootstrap.min.css一行引
-
border-spacing没反应最常见的原因是border-collapse被设为collapse,此时该属性被浏览器忽略;必须显式设置border-collapse:separate且作用于table元素,其第一个值控制列间距、第二个值控制行间距。
-
应直接使用<picture>实现AVIF/WebP适配,因其无需JS、不发额外请求、SEO友好且原生支持;srcset不识别格式,必须依赖<sourcetype>做MIME类型匹配,顺序为AVIF→WebP→JPEG,并确保各格式尺寸与质量一致。
-
JavaScript异步编程以Promise为基础抽象,async/await是其语法糖;Promise封装状态(pending/fulfilled/rejected),支持链式调用与并发方法;async/await简化书写与错误处理,二者定位不同、协同使用。
-
FID必须用JavaScript主动监听计算上报,不能靠HTML控制;其本质是用户触发事件到浏览器开始处理的排队延迟,需用event.timeStamp减performance.now()近似计算,且监听须尽早注册并过滤后台事件。
-
key必须加在map返回的顶层JSX元素上,优先用数据唯一ID,慎用index或随机值,确保同一层级兄弟节点中稳定且不重复。
-
HTML模板错误常因标签嵌套非法、自闭合不当、条件逻辑残留或服务端注入干扰导致,浏览器会自动修复DOM结构,故应以Elements面板为准而非源码。
-
iOSWebView中无法直接触发HTML5下拉刷新,需通过touchstart/touchmove拦截并e.preventDefault()阻止原生橡皮筋效果,配合overscroll-behavior-y:contain及正确滚动容器配置,同时用Math.abs(window.scrollY)<1替代scrollY===0避免iOS浮点误差。
-
使用相对单位和媒体查询实现按钮响应式,通过rem、em、%或vw设置尺寸,并结合@media调整不同屏幕下的字体与间距,确保适配各类设备。
-
用唯一键(如临时URL或内容哈希)关联Blob和File元数据,Map中只存业务元数据,封装统一接口处理类型转换与键生成,前端Map仅限当前会话,需结合服务端ID做持久化对齐。
-
原生<inputtype="date">宽度无法直接用width:100%撑开,因浏览器为其设定了默认min-width(如Chrome约130px),需显式设置min-width:0和box-sizing:border-box才能生效;Flex布局中同样需min-width:0配合flex:1;Safari兼容性最差,建议优先考虑自定义方案。
-
图片懒加载与预加载结合可显著提升网页性能。1.懒加载通过IntersectionObserverAPI延迟加载视窗外图片,减少初始请求;2.预加载在空闲或用户操作前提前加载关键资源;3.首屏直接加载、非首屏懒加载并配合占位图与尺寸设置优化体验。