-
JavaScript响应式设计核心是补足CSS媒体查询边界,需用resize事件(须节流)或matchMedia(更精准断点判断),结合CSS自定义属性协同,并注意移动端visualViewport等特殊处理。
-
JavaScript是基于原型的语言,因其不依赖类而通过对象间委托关系实现复用与继承,该关系由prototype、__proto__及原型链终止于null共同构建。
-
原生HTML+CSS+JS可实现轻量模态框:用position:fixed容器、z-index分层遮罩与内容、display/visibility控制显隐;需监听Escape键和遮罩点击(e.target===e.currentTarget)、禁用背景滚动、焦点管理(自动聚焦首个可交互元素、Tab循环、关闭后恢复触发源焦点)、支持innerHTML动态内容(注意XSS)、aria-modal="true"提升可访问性。
-
闭包能保留值是因为函数会记住其创建时的词法作用域,即使外部函数已执行完毕,内部函数仍可通过闭包访问并保持对当时变量的引用。1.在异步操作中,由于JavaScript是单线程并依赖事件循环,回调函数往往在外部变量已变化后才执行,导致访问到的是最新值而非预期值;2.使用闭包可通过IIFE为每个回调创建独立作用域,从而“锁定”变量值;3.ES6的let在for循环中每次迭代创建新的绑定,相当于自动实现闭包隔离,使异步回调能正确访问各自循环变量;4.闭包广泛应用于事件处理、模块封装、柯里化等场景,但也需警惕内存泄
-
:focus-within是CSS伪类,当元素内任何子元素获得焦点时触发,常用于高亮表单容器。例如input获得焦点时,父级.input-group应用边框变色或阴影,提升可访问性与用户体验;还可实现输入时显示清除按钮等动态效果,配合transition更流畅,现代浏览器支持良好,IE不支持需JS模拟。
-
通过CSSanimation与background-position结合可实现流畅背景动画,如滚动云层或流动河流,利用@keyframes改变背景位置,配合background-size和多层背景增强视觉效果,适用于banner动效、按钮悬停等场景。
-
单向数据流在JS中的核心实现是通过“数据向下传递,事件向上冒泡”的模式,即父组件通过props将数据传给子组件,子组件通过事件或回调通知父组件修改状态,从而保证数据流向的清晰与可预测;在复杂场景中,采用中心化状态管理(如Redux模式),通过定义全局状态、不可变更新的reducer函数、dispatch动作和订阅机制,实现状态的集中控制与组件的自动更新;这种模式的重要性在于提升大型项目的可维护性、可调试性和组件复用性,避免数据混乱和副作用;常见挑战包括样板代码过多、对不可变性理解不足导致状态更新失效、性能
-
要让flex容器中文字真正垂直排列,必须使flex主轴方向与writing-mode的文本流方向一致:推荐使用flex-direction:column配合writing-mode:vertical-rl;同时注意vertical-rl下width控制视觉高度、height控制水平尺寸,需用width/min-width约束竖排文字“高度”,并设置min-height保障纵向空间。
-
JavaScript无法单靠函数自动防御XSS,必须区分上下文、严格转义、禁用危险API:innerHTML/outerHTML、document.write、eval、setTimeout/setInterval传字符串、location跳转含javascript:、newFunction均可能触发XSS。
-
clearRect仅清像素不重置状态,需手动恢复globalCompositeOperation等;resetCanvas通过重设width彻底重置但性能差;fillRect仅适用于单色背景。
-
纯函数指相同输入始终返回相同输出且无副作用,如add(a,b);依赖外部变量的函数非纯。不可变数据要求不修改原始对象或数组,而是通过展开运算符等创建新数据,避免状态混乱。例如更新用户年龄时,应使用map和解构生成新数组而非修改原数组。结合二者可提升代码可读性、可维护性与可测试性,尤其适用于React等框架的状态管理。
-
组合函数是将多个一元函数按顺序串联执行的编程模式,pipe从左到右执行如h(g(f(x))),compose从右到左执行如f(g(h(x))),提升代码可读性、复用性与可测试性。
-
HTML嵌套塌陷本质是块级元素垂直margin合并,非嵌套错误;典型表现为子元素margin-top穿透无border/padding/overflow的父容器;可用overflow:hidden触发BFC、flex/grid布局或改用padding解决。
-
当两个绝对定位的div完全重叠时,仅顶层元素默认响应交互;本文提供一种基于pointer-events动态切换的可行方案,并重点分析其局限性,同时推荐更健壮的语义化替代方案。
-
border必须同时指定width、style、color才生效;letter-spacing控制字符额外间距,不继承;line-height和padding共同决定文字与边框距离;flex的align-items比line-height更可靠实现垂直居中。