-
gridgap仅控制网格项间间隙,不影响容器边缘;需额外设置padding实现边缘留白,不可用margin替代。
-
addEventListener的三个选项capture、once、passive可精确控制事件行为:capture指定捕获阶段触发,once确保回调仅执行一次,passive提升滚动性能;合理使用可优化代码性能与维护性。
-
子元素margin会让父元素“被撑开”是因margin塌陷:子元素垂直外边距与父元素边界合并;触发BFC(如display:flow-root)可彻底解决,语义清晰且无副作用。
-
最稳定方案是用Puppeteer截取完整滚动页面PNG再转PDF:先page.screenshot({fullPage:true}),再用img2pdf转单页PDF;若直接page.pdf(),需设大height并禁用页眉页脚。
-
实现选项卡功能有五种方法:一、原生HTML+CSS+JavaScript;二、Bootstrap5插件;三、HTMLDetails/Summary元素;四、Tabby轻量JS库;五、Vue.js动态绑定。
-
__proto__指向实例的原型对象,prototype是函数独有的属性;实例方法调用依赖原型链委托查找,如p.sayHi()会依次查找p→Person.prototype→Object.prototype。
-
Object.assign会复制可枚举属性和Symbol键并执行getter,而扩展运算符仅复制字符串键的可枚举属性且保留getter/setter不执行,因此在处理访问器或Symbol时行为不同。
-
动态导入与代码分割通过按需加载提升性能。1.动态import()实现运行时条件加载,适用于按钮触发、路由切换等场景;2.构建工具据此拆分代码,生成独立chunk,支持路由分离、vendor提取;3.配合React.lazy和Suspense优化异步组件加载;4.preload/prefetch提示浏览器预加载资源,减少等待;5.魔法注释控制chunk行为,合理设计命名与缓存策略可进一步优化体验。
-
WebWorkers是浏览器提供的隔离式后台线程机制,非JS多线程;必须用独立同源JS文件创建,通过postMessage传递数据(结构化克隆),大数组用Transferable零拷贝;Worker内无DOM、无localStorage;需显式terminate()或self.close()防内存泄漏。
-
audio的muted是布尔属性,仅存在即为true,不写为false;JS中audio.muted可读写布尔值,但需用户手势触发才能取消静音。
-
错误边界是React类组件通过staticgetDerivedStateFromError或componentDidCatch捕获子组件JavaScript错误的机制,用于渲染降级UI和记录日志,防止应用崩溃,但无法捕获异步代码、事件处理器等错误。
-
本文介绍在Vue.js中优雅等待多个异步API请求全部完成后再渲染表单界面的方法,避免因部分数据未就绪导致UI错误或空白,重点讲解Promise.all、响应式更新与强制重渲染的适用场景及最佳实践。
-
JavaScript的展开运算符(SpreadOperator)是三个英文句点...,它能把可迭代对象(如数组、字符串)或类数组对象“打散”成独立的元素,也支持将对象的属性逐个展开。它常用于数组合并、对象合并、函数调用传参等场景,写法简洁且可读性强。用展开运算符合并数组传统方式合并数组常用concat()或手动push,而展开运算符让操作更直观:直接把一个数组“铺开”,再与其他元素一起组成新数组。合并两个或多个数组:constarr1=[1,2];consta
-
Proxy与Reflect可拦截并自定义对象操作,用于实现数据绑定、验证、响应式系统等高级功能,通过get/set捕获器结合Reflect转发默认行为,提升元编程能力。
-
HTML中绘制细线分隔有五种CSS方案:一、border单侧设置;二、hr重置样式;三、box-shadow模拟;四、渐变背景;五、伪元素绘制,各适用于不同场景与设备需求。