-
柯里化是将多参数函数转换为一系列单参数函数的过程,核心是参数分步传递和闭包记忆已传参数,支持部分应用、复用及函数组合,适用于配置预设、事件处理等场景。
-
用Tailwind更优,因其支持PurgeCSS精准剔除未用样式;Bootstrap需手动引入SCSS子模块或第三方插件压缩;Bulma/Foundation因嵌套选择器、无ESM、不可按需提取而拖慢首屏;CSS-in-JS有运行时开销,应慎用于高频交互场景。
-
依赖注入通过外部传入依赖降低耦合,提升可测试性与可维护性。JavaScript中可通过构造函数注入、工厂函数或DI容器实现:构造函数注入将依赖作为参数传递,便于替换和测试;工厂函数集中管理对象创建,减少重复代码;DI容器自动解析依赖,进一步解耦。关键优势包括依赖清晰、易于测试、灵活替换实现和减少硬编码,有效提升代码质量。
-
<footer>标签语义上表示父容器的页脚内容,不限于页面底部;可嵌套在<article><section>等元素内,多个<footer>合法且互不影响;其语义与视觉位置无关,应通过CSS布局而非HTML顺序控制显示位置。
-
浮动导致父容器高度塌陷,使背景图视觉错位;需用clearfix清除浮动、设background-origin为content-box或padding-box并配box-sizing:border-box。
-
答案:通过设置初始边框和transition属性可实现border-width平滑过渡,避免使用border:none导致动画失效。
-
JavaScript引擎通过解析、编译、执行三步处理代码,V8采用Ignition解释字节码+TurboFan对热点函数JIT编译;JS执行会阻塞DOM解析与渲染,async脚本下载后立即执行,defer则延迟至DOM解析完成前按序执行。
-
宽屏下内容太散的根本原因是容器默认随视口拉伸导致阅读动线过长;解决方法是用max-width限制主体宽度(如1024px)并配合margin:0auto居中,小屏不设、大屏分级控制,避免父容器flex/absolute/高优先级width干扰。
-
浏览器无法直接加载SCSS,必须先编译为CSS再通过link标签引入;推荐使用sass--watch实时编译,并确保HTML中href路径与输出CSS位置一致,构建工具如Vite可自动处理无需手动写link。
-
WebAudioAPI通过AudioContext管理音频节点图,支持加载音频、实时处理与可视化及合成音效。1.使用fetch和decodeAudioData加载并播放音频文件;2.利用AnalyserNode获取频域及时域数据实现音频可视化;3.通过OscillatorNode生成不同波形创建合成音效;所有操作需在用户交互后启动上下文以避免自动播放限制,结合Canvas可构建丰富交互式音频应用。
-
background-size控制背景图缩放方式:cover完全覆盖(可能裁剪)、contain全部可见(留白)、100%100%强制拉伸(易变形)、200pxauto定宽自适应;background-attachment决定滚动行为:scroll随内容、fixed相对视口、local随局部滚动;二者组合时参照系易混淆,fixed下cover按视口计算,local+100%100%在可滚动容器中会反复拉伸;优先用scroll+cover,调试启用Paintflashing;IE9+支持background
-
:empty仅匹配完全无内容(不含空格、换行、注释、子元素)的元素,需配合背景色、尺寸或伪元素实现占位;对“视觉为空”需JS预处理或类名控制,不可依赖其响应动态变化。
-
弹窗CSS定位核心是遮罩层用fixed全屏覆盖,弹窗主体用fixed+transform居中;需设max-width/max-height防溢出,配合overflow-y:auto、body滚动禁用、焦点管理及动画优化以保障响应性与可访问性。
-
WebComponents是浏览器原生支持的可复用、封装良好的自定义HTML元素,核心包括customElements、HTMLElement和ShadowDOM;需继承HTMLElement、含短横线命名、调用customElements.define()注册,并用attachShadow隔离样式与事件。
-
装饰器是JavaScript中用于修改类、方法、访问器或参数行为的语法特性,本质为接收目标对象等参数并返回新定义的函数;目前处于TC39Stage3提案阶段,未正式标准化,但已被TypeScript和Babel广泛支持。