-
JavaScript文件上传核心是用FormData构建数据并用fetch或XMLHttpRequest发送,自动处理二进制、boundary和编码;需通过File/Blob添加文件,不可用路径;fetch不支持上传进度,需用XMLHttpRequest监听xhr.upload.onprogress。
-
WebStorm中图片对齐失效的主因是display与vertical-align组合不当、Flex父容器缺失display:flex、路径解析错误及盒模型干扰;应优先用Elements面板检查computed样式,再针对性调整。
-
Set和Map是ES6专为去重/存在性判断与灵活键值映射设计的原生集合类型;Set自动去重、O(1)查询、支持集合运算;Map支持任意类型键、保持插入顺序、无原型污染,语义清晰且性能更优。
-
Stylelint保存时自动修复不生效,主因是VSCode格式化链路冲突或customSyntax未配置;应关闭editor.formatOnSave、启用stylelint.autoFixOnSave,确保安装官方插件、配置匹配的customSyntax及可修复规则。
-
优先选用明确标注“CORSenabled”的天气API(如open-meteo.com),否则须通过后端代理中转,禁在前端硬编码Key;渲染时用textContent防XSS,IP定位需合规提示并提供手动修正入口。
-
路由守卫是前端权限控制第一道防线,仅做可见性过滤和轻量准入检查,核心权限必须由后端接口返回并校验;适合拦截未登录访问、角色无权路由及动态菜单过滤,不适用于接口权限、字段级控制或绕过地址栏的假安全。
-
应使用btnis-loading表达按钮加载状态,其中is-loading是语义清晰、块级归属的状态修饰符,需与块名组合使用、限定作用域、避免泛匹配,并遵循声明式设计原则。
-
事件监听器未清理是内存泄漏的直接原因,需用ChromeMemory面板检测detached节点及EventListeners数量增长,推荐AbortController配合signal自动解绑,尤其注意window/document监听器和React/Vue卸载时的清理时机。
-
Permissions-Policy是细粒度权限闸门,需明确“控谁、控什么、在哪控”;iframe的allow属性优先级高于响应头,须用分号分隔、括号指定来源;HTTP头需服务器配置,注意语法兼容与转义;navigator.permissions.query()返回prompt不代表可调用API,必须用户手势触发且iframe已获授权。
-
当子元素少于4个时强制单列显示,需用:has(>*:nth-child(4))判断存在性,配合not(:has())实现≤3个子项为1fr;阶梯式列数需按≥7、4–6、≤3顺序叠加:has()与:not(:has())规则,注意浏览器兼容性及display:contents兼容问题。
-
sticky元素被裁剪需检查overflow非visible的祖先容器,必要时提级至更高层;遮挡问题需确保其定位上下文存在并设z-index;滚动容器决定粘性范围,非body子元素或含overflow祖先将限制效果。
-
是的,link标签顺序影响样式优先级,但仅当同权重规则冲突时,后加载的CSS会覆盖先加载的;源顺序是CSS层叠机制的一部分,需确保文件正确加载且无@import等干扰因素。
-
掌握CSS中transition与z-index协同技巧,可避免动画卡顿和层级错乱。1.z-index仅对定位元素生效,动画前应提前设置高z-index,且不在transition中包含z-index变化;2.确保动画元素所在父容器具备独立堆叠上下文,必要时通过transform:translateZ(0)等方式创建新层;3.模态框显示时先设z-index和visibility,再触发动画,隐藏时反向操作;4.卡片悬停提升层级时,hover前预设z-index目标值,配合transform实现跃出效果。关
-
选defer还是async取决于脚本是否依赖DOM或其他脚本:defer等HTML解析完按序执行,适合操作DOM或有依赖的外部脚本;async下载完立即执行、无序,适合独立第三方脚本;默认同步加载会阻塞渲染,应避免。
-
使用flex-wrap和gap可创建响应式按钮组:通过display:flex、flex-wrap:wrap实现换行,gap统一间距,无需媒体查询即可在不同屏幕下自动调整布局。