-
要反转对象数组的键值对,需遍历每个对象并交换其键与值,但需注意值的唯一性及类型限制。1.使用map和Object.entries()配合reduce或for...of循环创建新对象,将原值作为新键,原键作为新值;2.若值为对象或数组,直接用作键会转为"[objectObject]"导致冲突,可采用JSON.stringify()序列化处理,但需注意性能与循环引用问题;3.当存在重复值时,直接赋值会导致覆盖,应使用数组存储对应键以避免数据丢失;4.Lodash的_.invert仅适用于单
-
grid-template-rows使用auto时行高由内容决定,适合动态内容;使用固定值(如50px)则布局规整,适合对齐要求高的场景。可混合使用,如60pxauto40px,兼顾灵活性与结构统一。
-
需同时支持鼠标和触摸事件以实现跨设备拖拽。首先通过检测ontouchstart判断是否为触摸设备,并据此统一使用touchstart/mousedown等对应事件;在事件回调中优先从touches[0]或clientX/clientY提取坐标,封装函数屏蔽差异;拖拽开始时绑定相应move/end事件,结束时及时解绑以防冲突;仅在位移超过阈值确认拖拽后调用preventDefault()避免误阻滚动。通过统一事件接口与状态管理,确保桌面与移动设备均流畅交互。
-
<mark>标签本身性能开销极小,真正影响首屏速度的是不当CSS样式、大规模无节制渲染及客户端动态插入等误用行为。
-
HTML5中<header>、<nav>、<main>、<section>、<article>、<aside>、<footer>等结构标签必须成对闭合,否则会导致DOM解析异常、CSS失效、无障碍访问受损及W3C验证失败。
-
animation-delay用于设置动画首次播放前的延迟时间,仅错开起点而不暂停或中断动画;可为负值实现中途开始,需配animation-fill-mode:backwards避免闪动。
-
使用伪类可实现图标交互效果::hover改变悬停样式,:active响应点击状态,:focus提升可访问性,结合::before/:after动态替换图标内容,通过颜色、大小、transform等属性增强视觉反馈。
-
flex布局里align-items不生效?检查父容器是不是块级且有高度很多情况下写完display:flex和align-items:center,子元素就是不居中——大概率是父容器没撑开。flex的垂直居中依赖父容器明确的高度(height或min-height),否则它会按内容自动收缩,导致“居中”无从谈起。常见错误现象:div里放了个按钮,加了flex居中,但按钮还是贴着顶部;检查computedstyles会发现父容器height是0。确保父容器设
-
Promise是一个状态容器,初始为pending,之后只能变为fulfilled或rejected且不可逆;它不是回调函数的语法糖,也不能让异步变同步。
-
HTML5上传日志记录核心是监听XMLHttpRequest.upload.onprogress等事件,需手动用XHR或fetch发起上传,捕获进度、状态、错误等信号,而非依赖表单提交;关键字段包括文件名、大小、起止时间、状态码、错误详情及响应体,须脱敏处理并避免高频日志影响性能。
-
默认width/height仅指内容区,不包含padding和border;设width:200px实际可能占240px,因box-sizing默认为content-box;改用border-box后width包含内容、内边距与边框,更符合设计习惯且避免计算错误。
-
absolute元素百分比宽度失效的根本原因是包含块无明确宽度;其宽度需相对于最近非static定位祖先计算,若该祖先宽度为auto则百分比无法解析。
-
color属性支持5类颜色值格式:颜色关键字、十六进制(#rgb/#rrggbb/#rgba/#rrggbbaa)、RGB函数、RGBA函数、HSL/HSLA函数;推荐优先使用十六进制或HSL因其精度高、可计算且易调色。
-
JavaScript对象操作核心方法包括创建(字面量、Object.create、Object.assign、class)、检查(hasOwnProperty、in、Object.hasOwn)、遍历(keys/values/entries/getOwnPropertyNames/getOwnPropertyDescriptors)及保护(freeze/seal/preventExtensions/defineProperty)。
-
clip-path动画不动或卡顿是因为CSS不支持polygon()坐标序列插值,需确保起止函数类型相同、参数数量一致;优先用inset()/circle()或SVGclipPath实现稳定过渡。