-
函数柯里化是将多参数函数转换为依次接收单个参数的函数序列的技术。其核心思想是通过闭包逐步收集参数,直到数量满足原函数要求时执行。例如,sum(a,b,c)柯里化后可写成sum(1)(2)(3)。手动实现依赖判断当前参数是否足够,不足则返回新函数继续接收参数。典型实现使用递归和fn.length获取形参个数。应用场景包括预设日志级别、事件处理器中固定动作类型、构建可复用工具函数等,如Lodash的_.curry。它提升代码复用性与配置灵活性,尤其在函数式编程中利于组合与中间件设计。合理使用使逻辑更清晰简洁。
-
表单的method属性决定数据提交方式,GET将数据附加在URL后,适合无副作用的查询操作,可缓存、可分享,但不安全且有长度限制;2.POST将数据放在请求体中,适合传输敏感或大量数据,不可缓存、不可分享,具有非幂等性,适用于修改服务器状态的操作;3.安全性上两者均需HTTPS保障,性能差异主要取决于缓存与数据量,实际应用中应根据操作意图选择:GET用于获取数据,POST用于提交或修改数据。
-
本文介绍如何使用原生JavaScript实现复选框组与顶部“全选”复选框的双向联动:点击全选框可批量操作子项,任一子项状态变化时自动更新全选框状态(全选时勾选,非全选时取消)。
-
fetch()是现代标准但需手动补全Cookie、错误处理和超时;常见无响应因忘await/.then(),且4xx/5xx不reject;需检查res.ok、JSON.stringify、FormData用法、GET无body、credentials控制跨域Cookie、AbortController实现超时与取消。
-
使用Bootstrap5的Flexbox工具类(如d-flexflex-column和mt-auto),可轻松实现按钮在固定高度容器内的底部对齐,无需额外CSS或JavaScript。
-
防范JavaScript漏洞需从多层面构建防护机制:1.防范XSS攻击,通过输入验证、输出编码和启用CSP限制脚本来源;2.禁用eval等动态执行方法,避免执行不可信代码;3.保护敏感数据,不在前端暴露API密钥,通过后端代理请求;4.管理第三方依赖,定期审计漏洞并使用SRI校验完整性。安全需贯穿开发全流程,坚持最小信任与纵深防御原则。
-
z-index失效因元素未定位或处于不同层叠上下文;绝对定位参照最近已定位祖先,非父元素;flex/grid中order等属性会改变视觉顺序但不影响DOM结构。
-
WebWorker是独立于主线程的后台脚本,不共享内存、不可操作DOM,通过postMessage通信,支持Transferable优化大数据传输,需显式错误监听,SharedArrayBuffer+Atomics可实现共享内存但需跨域隔离。
-
border会撑开布局,outline不会;border支持圆角和分边控制,outline不支持且始终为矩形;outline默认用于焦点提示,但移除时需兼顾可访问性。
-
相邻兄弟选择器(+)用于精准匹配紧接在某元素后且同级的下一个兄弟元素,语法为A+B,要求A与B同父、无间隔;不支持前兄弟、跨层级或中间含注释节点,可结合伪类增强功能。
-
Prism.js是最轻量易用的JavaScript代码高亮方案,支持丰富语言和主题;需引入核心CSS和JS,代码块须为<pre><codeclass="language-xxx">结构,按需加载语言或插件,并可手动调用Prism.highlightAll()处理动态内容。
-
z-index失效的根本原因是父容器创建了层叠上下文,导致子元素的z-index仅在该上下文中生效;常见触发属性包括opacity<1、transform≠none、filter、will-change、position:fixed/absolute等。
-
正确使用<picture>标签需按视口条件选择不同图片资源:<source>用media定义断点,srcset提供对应分辨率选项,<img>为必需兜底;media必须是合法媒体查询,srcset在source中仅处理设备像素比切换,img的src不可省略且需配alt。
-
浮动图片后文字不环绕或父容器塌陷,需区分处理:对后续块级元素加clear:both清除浮动影响;对父容器用clearfix或display:flow-root使其包含浮动子元素。
-
本文介绍如何使用<inputtype="checkbox">+<label>组合创建最简、语义正确且符合无障碍标准的切换按钮,无需手动管理aria-pressed或编写样式逻辑,天然支持浏览器默认按压态与键盘交互。