-
async函数内必须用trycatch包裹await表达式才能捕获异步错误,因async返回Promise,外部trycatch仅捕获同步错误;事件处理器中需显式处理Promise拒绝,避免错误静默丢失。
-
联系表单必须包含哪些input字段用户能发出去、你能收得到,是最低要求。缺了关键字段,后续所有验证和提交都是空谈。name:别用username或contact_name,后端解析时容易不一致;统一用name最稳妥email:必须设type="email",浏览器会做基础格式校验,且移动端自动弹出邮箱键盘subject:建议用select+默认选项,避免用户乱填“你好”“test”“???”导致归类困难message:必须是textarea,不是inputtype="text"
-
纯CSS深度按钮靠多层linear-gradient叠加实现明暗错觉:第一层tobottom垂直高光渐变,第二层toright水平阴影渐变,顺序不可颠倒,用background-size/position精准控光效;stop-color是SVG属性,CSS中应写#fff0%;:active时位移各层background-position增强按压感;IE11等旧环境用@supports降级单层渐变。
-
accesskey会静默失效,因系统或浏览器优先截获组合键(如Alt+T触发新建标签页),且macOSSafari默认禁用、扩展程序可能劫持;仅可聚焦元素响应,需显式标注并避开常用键。
-
虚拟DOM和响应式系统是现代JavaScript框架的核心。答案:通过JS对象模拟DOM并结合数据监听实现自动更新。用VNode描述UI结构,避免频繁操作真实DOM;利用Object.defineProperty或Proxy监听数据变化,在getter中收集依赖,setter中触发更新;状态变化时重新生成VNode,通过diff算法比对新旧节点,最小化更新真实DOM;结合二者可实现“数据变→视图更新”的闭环,构成Vue、React等框架基础。
-
Grid内容被挤压的根源是轨道未设下限且子项min-width未重置;需用minmax(280px,1fr)等组合配合min-width:0、overflow-wrap:break-word及缩小gap来协同解决。
-
Vue3的reactive通过Proxy实现响应式,支持深层监听、动态增删属性、数组索引赋值及Map/Set等结构,采用懒代理、依赖收集与触发更新闭环机制。
-
用--radius自定义属性统一管理圆角是最轻量易维护的方式,需全局引用、避免硬编码,并通过calc()或分层变量(如--radius-btn)应对差异化需求,同时注意Safari兼容性及响应式缩放问题。
-
CSS变量值不应加外层引号,否则引号会被当作字面量存储;正确写法是--my-str:helloworld;,需转义时用\"或\',URL和calc等原生语法可直接使用。
-
navigator.geolocation需HTTPS或localhost、检查支持性、必须传error回调;watchPosition需手动clearWatch防泄漏;enableHighAccuracy耗电且室内无效;拒绝权限后需降级方案。
-
poster属性不支持自动截取第一帧,必须用JavaScript主动截取并赋值;video.currentTime=0后截黑图需检查loadeddata事件、跨域设置、移动端延迟及编码特性。
-
语义化标签通过明确网页结构提升用户体验与机器理解,如<nav>、<article>帮助辅助技术识别导航和内容主体;ARIA属性补充HTML不足,用role和状态属性增强动态组件的无障碍访问;结构化数据通过Schema.org词汇提供机器可读的事实,赋能搜索引擎展示富摘要并支持智能应用解析信息。这三者共同构建多维度语义网,使网页内容更易被不同系统高效理解与利用。
-
色差主因是浏览器对HEX颜色的色彩空间解释不一致;必须用rgb(255107107)等显式sRGB语法锚定空间,否则linear-gradient中同一HEX值在Chrome、Firefox、Safari里映射的物理色不同,导致插值路径和最终渐变效果差异。
-
SSR的核心是在Node.js中执行组件并生成带数据的HTML字符串,而非直接返回静态index.html;必须包含组件执行、数据注入、HTML合成三环节,且需规避浏览器API、保证同构、严格对齐客户端水合。
-
使用绝对定位结合transform居中模态框,通过top:50%、left:50%将元素起点移至视口中心,再用transform:translate(-50%,-50%)精准居中,兼容性好且无需知道具体尺寸,推荐配合fixed定位与遮罩层使用。