-
JavaScript继承基于原型链,ES6前用构造函数和原型实现,如原型链继承、构造函数继承、组合继承及寄生组合继承;其中寄生组合继承为最优方案,避免重复调用父类构造函数。ES6引入class和extends语法,使继承更直观,但底层仍基于原型链,仅是语法糖。class支持static定义静态方法,提升可读性与生态兼容性,现代框架广泛采用。核心原理始终为原型机制。
-
Babel插件通过AST操作ImportDeclaration、ExportAllDeclaration等节点的source.value安全重写模块路径,需同步更新raw值、兼容动态import()和TS,避免修改specifiers及相对路径错误。
-
display切换方案的核心思路是通过媒体查询将表格元素转换为块级元素,实现垂直堆叠布局,并利用data-label属性和伪元素恢复表头信息。具体步骤:1.使用语义化HTML结构;2.在小屏幕媒体查询中设置display:block并隐藏表头;3.通过data-label和::before伪元素显示列标题;4.调整样式优化对齐与布局。局限性包括代码冗余、内容过长影响体验、可访问性问题、交互限制及不适用于复杂比较型表格。其他响应式策略有横向滚动、列隐藏、翻转表格和使用JavaScript库,各自适用于不同场
-
使用Chart.js、GoogleCharts和ECharts结合HTML可实现数据可视化。1.Chart.js通过canvas绘制响应式图表,需引入库、创建canvas容器并用JavaScript配置数据;2.GoogleCharts支持复杂图表类型,需加载库、设置回调函数、定义数据与选项,并用div显示图表;3.ECharts适合动态与大数据场景,需引入脚本、准备div容器并初始化实例配置选项。关键在于正确设置容器尺寸、数据格式与配置项,确保响应式布局与交互功能正常。
-
input的value属性设默认值最直接,适用于text等类型;checkbox/radio用checked;select用option的selected;textarea内容写标签体内;disabled不提交,readonly会提交。
-
用响应式断点控制列数时,需确保断点与设备视口精确匹配,如md起始于768px,避免卡在临界值;卡片高度不一致应设min-h或grid-auto-rows-min;间距优先用gap而非padding;SSR中须保证Grid子元素结构一致。
-
$patch是Pinia推荐的批量更新store状态方式,支持对象式和函数式两种用法:对象式用于同层级字段的精准合并更新,函数式适用于基于当前state计算新值的场景,兼具性能、安全与类型友好性。
-
浏览器通过name和autocomplete属性协同识别用户名输入框,其中autocomplete="username"是关键信号,且用户名框必须位于密码框之前。
-
按钮状态切换不自然的主因是未在默认状态中定义transition,导致进出动画不一致;应显式声明需过渡的属性、统一各交互态的过渡参数,并排查样式覆盖与属性兼容性问题。
-
ReactHooks与ContextAPI进阶用法包括:1.useState处理复杂数据时保持不可变性,useEffect精准管理依赖和清理副作用;2.自定义Hook如useLocalStorage提升逻辑复用;3.ContextAPI结合useMemo优化深层传参性能;4.useReducer管理复杂状态流,配合Context实现轻量全局状态。合理组合可构建健壮易维护的中小型应用架构。
-
响应式颜色设计需结合设备特性、用户偏好与可访问性,通过CSS相对颜色函数、系统色值、媒体查询及自定义属性,实现跨屏幕的智能适配,提升可读性与视觉一致性。
-
块级元素默认独占一行且可设宽高和四向边距,行内元素默认水平排列、宽高无效、仅左右边距生效;嵌套时行内元素不能直接包含块级元素,修改display值会改变其布局行为与限制。
-
CSSanimation不支持自动串联关键帧,多段动画需通过多个独立animation声明配合animation-delay错峰触发,并设fill-mode为forwards以保持状态。
-
闭包是函数作用域链自然保留的结果:外层函数返回内层函数,内层函数引用外层变量,且外层执行完后内层仍可调用;如createCounter中count被持续持有,而foo中bar立即调用则不构成闭包。
-
Map适合键类型不固定的场景,支持任意类型键;Set用于去重和存在性判断,性能优于数组includes;二者不可直接JSON序列化,且需注意旧环境兼容性。