-
JavaScript中原型链继承与ES6类继承底层均基于原型,但类继承通过extends和super提供更清晰语法,自动处理原型链接与静态属性继承,减少错误,提升可读性。
-
直接修改HTML文件中<title>标签内容即可生效,无需重新编译;仅该标签决定页面实际标题,其他meta标签无效,且需确保其位于<head>内、内容与正文关键词一致。
-
用CSS伪元素画三角形的核心原理是:宽高为0时,通过设置三边透明、一边有色的边框,利用边框交界处的斜角视觉错觉形成三角形;口诀为向上用border-bottom、向下用border-top、向左用border-right、向右用border-left。
-
FontAwesome伪元素图标不显示的主因是字体文件未加载、CSS选择器失效或content值与版本Unicode不匹配;需确保版本一致(v5/v6编码不同)、font-family正确设置、字体文件HTTP状态为200且MIME类型合法,并排除display/visibility等隐藏样式干扰。
-
掌握WebGL渲染流程需先获取canvas上下文,编写GLSL着色器,编译链接程序,传入顶点数据,调用绘制函数执行渲染;每帧清空画布、设置MVP矩阵、绑定资源并绘制,构成渲染循环。3D场景依赖模型、视图、投影变换,通过perspective和lookAt模拟摄像机,片元着色器计算光照提升真实感。动画依靠requestAnimationFrame驱动,逐帧更新物体状态如旋转角度,结合deltaTime保证时间一致性。尽管原生WebGL有助于理解图形管线,但实际开发推荐Three.js等高级库,可大幅简化场景
-
使用Flexbox可创建灵活的表格布局,通过flex-grow控制列的扩展比例,flex-shrink管理压缩行为,flex-basis设定初始宽度,实现响应式设计中的动态列宽调整,适用于表单、卡片列表等场景。
-
计数排序是一种非比较排序算法,其核心是通过统计每个数值的出现次数并利用前缀和实现稳定排序,时间复杂度为O(n+k),空间复杂度为O(n+k),其中n为元素个数,k为数据范围;它仅适用于非负整数且k较小的场景,不适用于浮点数、字符串或负数,否则需额外映射;其稳定性通过从原始数组末尾逆序遍历并结合前缀和数组实现,确保相同元素的相对位置不变;常见变体包括作为基数排序的子过程,用于按位排序大范围整数;当k远大于n时,该算法在时间和空间上开销巨大,因此虽在特定场景高效,但通用性差,是一种牺牲通用性换取效率的专有排序
-
CSS过渡性能瓶颈在于重排重绘,width/height/top/left等布局属性易触发;应优先使用transform和opacity等GPU加速属性,并避免强制同步布局。
-
直接用color即可控制图标字体颜色,因其本质是特殊字符;需确保字体加载、类名正确及CSS优先级合理,推荐使用currentColor实现颜色同步,状态样式应结合伪类或属性选择器控制。
-
将字符串转为布尔值时,不能依赖隐式转换,因为非空字符串始终为true。应通过比较或函数处理实现:如str==="true"或封装函数判断"true"、"1"、"yes"等值,确保正确转换语义上的布尔值。
-
应引入UI组件库,当反复重写DatePicker等交互组件时;AntDesign更适中后台,因其Form/Table/a11y支持更完善;SSR支持仅在Nuxt/Next等场景必要;自研仅当设计约束不可配、专人维护、5+高频组件跨业务复用时才合理。
-
Flex项目高度不一致源于align-items默认stretch且内容高度不同,解决需统一min-height并区分align-items(项级对齐)与align-content(行级对齐)。
-
.navullia比.nav-link慢,因前者需从所有a元素右向左逐级回溯父级匹配,DOM节点多时开销剧增;后者为单类名,哈希查找近乎零成本。
-
推荐用@layerutilities自定义语义化工具类,如.card、.btn-primary,结合插件机制生成动态样式,保留原生类做响应式微调,兼顾可读性与灵活性。
-
JavaScript函数是可复用代码块,具有一等公民特性;定义方式有函数声明(提升)、函数表达式(不提升)和箭头函数(无this、不可构造);调用需用()传参,支持IIFE、默认参数与剩余参数。