-
答案:reduce不仅能求和,还可构建树结构、统计频次、分组、函数组合及扁平化数据。1.用reduce将扁平数组转为嵌套树形;2.去重并统计元素出现次数;3.实现多条件分组groupBy;4.组合多个函数形成执行管道;5.替代map+flat灵活重组深层结构。其核心是遍历中累积状态,适用需维护上下文的场景。
-
九宫格用flex难均分主因是依赖子项数量,图片不足时留白不均、末行无法居中;grid用repeat(3,1fr)固定三列、gap控间隙、grid-auto-rows:minmax(200px,auto)保行高,结构稳定且语义清晰。
-
用<form>组织多题型混合问卷需确保每题name唯一、type合理、提交逻辑可预测:单选用同name不同value的radio并设checked;多选用独立name或数组式name如hobbies[];textarea加rows/cols和placeholder;必填项加required但后端仍须校验;select首项设value=""disabledselected;range须设min/max并配output或JS同步;date/time需后端解析;“其他”填空须独立
-
折叠屏HTML函数工具适配需协同viewport、screen.orientation与DOM尺寸:一、用orientationchange+visibilitychange双重校验折叠态;二、用matchMedia替代resize监听;三、设viewport-fit=cover并禁用scrollTo;四、动态设置rem基准适配PPI差异。
-
JavaScript响应式设计需结合resize节流与matchMedia:先用throttle控制resize高频触发,再用matchMedia精准监听断点变化,并在初始化和卸载时分别执行与清理。
-
URLSearchParams构造函数不能直接解析完整URL,仅接受querystring(如"a=1&b=2");传入含协议域名或未编码特殊字符的字符串会导致解析失败,正确做法是用location.search或newURL(url).searchParams。
-
最简洁可靠的方式是用Object.entries()配合Map构造函数,因其返回可迭代的[key,value]数组且仅遍历自身可枚举属性;但会丢失Symbol键和不可枚举属性,此时需用Reflect.ownKeys()手动构建。
-
Canvas本身无响应式绑定机制,性能问题多源于误用:在requestAnimationFrame中频繁读取布局属性、调用getImageData、动态访问canvas尺寸或遍历稀疏数组,引发强制同步布局与全帧内存拷贝。
-
JavaScript异步编程本质是不卡主线程,回调函数是最基础实现手段;它作为一等公民被传入API并在合适时调用,分同步与异步两类,需注意err-first约定、错误处理及避免回调地狱。
-
统一使用box-sizing:border-box可解决浏览器盒模型差异问题。标准模型width仅含content,而IE模型将padding和border算入width;通过全局设置,::before,*::after{box-sizing:border-box}可使尺寸计算一致,避免布局溢出,提升响应式设计可控性,现代浏览器及IE8+均支持,兼容性良好。
-
配置MAMP虚拟主机并优化路径与缓存,可实现CSS零感知延迟加载。1.启用httpd-vhosts.conf;2.添加VirtualHost指向项目目录;3.修改hosts文件绑定project.test;4.使用根路径引用CSS;5.开启mod_expires模块并配置.htaccess缓存规则;6.可选内联关键CSS避免FOUC。正确设置后,本地开发中CSS加载时间通常低于5ms,用户无延迟感。
-
HTML单位换算与格式转换不直接冲突,但DOM渲染、CSS计算和JS读取时因值被提前转为像素(如getComputedStyle返回"240px")导致原始单位丢失;需从el.style或CSSOM解析原始值,JS中应统一用parseFloat提取数值、正则提取单位,并注意em/rem基准及CSS变量单位传递陷阱。
-
color-profile不是CSS标准属性,也从未被主流浏览器实现;它源于对ICCv4、color-scheme或PDF术语的混淆;真正可用的是color()函数(如color(display-p3))配合系统与硬件支持。
-
shape-outside不生效的首要原因是未设置float;它仅对float:left/right元素有效,且需避免overflow隐藏浮动、使用纯黑白PNG或polygon()替代图像路径,并注意line-height与浏览器兼容性。
-
不能直接用transition:height实现面板展开动画,因为height:auto无法参与过渡;应使用max-height过渡或JS动态设置精确高度。