前端技术文章
-
HTML不是多线程语言,卡顿源于JavaScript主线程阻塞;WebWorkers可独立线程执行计算任务,但无法操作DOM;setTimeout和requestIdleCallback通过让出主线程控制权防卡顿,后者更精准但兼容性较差。149 收藏 -
CSScolumn-count是当前兼容性最好、代码最少的纯CSS瀑布流方案,需配合break-inside:avoid防止子项截断,并预设图片宽高比防抖动。433 收藏 -
V8内联函数的关键是安全性而非调用频次:add因纯函数、无副作用、AST简单而被内联;computeWithSideEffect含try/catch、eval或动态绑定等破坏控制流可预测性的结构,导致V8放弃内联。327 收藏 -
浮动元素脱离文档流导致空间不足时换行重叠,或父容器高度塌陷;可通过clear属性、触发BFC、伪元素清除法解决,现代布局推荐使用flex或grid避免问题。384 收藏 -
Math.hypot()的核心价值是安全计算多维欧氏距离,通过缩放算法避免平方导致的溢出或下溢;支持任意维度,计算两点距离需先求坐标差再传入;对Infinity、NaN、零等特殊值有明确定义。108 收藏 -
系统字体栈不能消除letter-spacing渲染差异,但能大幅收窄差异范围——关键在于剔除WebFont不可控变量,使浏览器退回到各自最稳的本地渲染路径。276 收藏 -
ChromeDevTools中定位正则回溯陷阱的关键是观察Performance面板中的长任务,若RegExp.prototype.exec等方法反复调用且耗时递增,即存在灾难性回溯;配合Network、Console测速验证输入风险,并在SourcesSnippets中用原子组等优化,使耗时从200ms降至1ms内。257 收藏 -
JavaScript中let与var的核心区别在于:作用域(块级vs函数级)、变量提升(TDZ存在与否)、重复声明限制(禁止vs允许)及全局对象绑定(不挂载vs挂载window)。496 收藏 -
负向先行断言(?!pattern)仅判断当前位置后不紧接指定模式,不匹配字符;常见错误是未锚定位置,正确用法需结合^、$、\b等边界确保否定范围准确。433 收藏 -
能,但需配合captureStream()与OffscreenCanvas或WebGL才能实现滤镜处理;它仅通知解码帧就绪,不直接提供像素数据,且仅支持Chromium111+及HTMLMediaElement播放场景。177 收藏 -
rgba(var(--color),0.5)不工作,因var(--color)返回字符串而非独立数值;RelativeColorSyntax要求颜色变量预定义为HSL/lch分量(如--primary-h:210),再用hsl(from.../var(--alpha))实现动态透明度。469 收藏 -
unshift()时间复杂度为O(n),数组越长性能越差;push()为O(1),始终高效。5万元素下unshift100次超300ms,push同量仅<0.5ms,差距百倍起跳。441 收藏 -
vertical-rl是中文竖排唯一合理的选择,因其符合传统印刷逻辑,使文本从上到下、行从右到左流动,且block-start对应顶部、inline-start对应右侧,确保第一行自然出现在容器最右边。419 收藏 -
浏览器不支持在@media中定义或重定义@keyframes,必须用不同名称的@keyframes配合animation-name在媒体查询中切换,并统一使用小写中划线命名、添加-webkit前缀以兼容旧版Safari和IE11。449 收藏 -
使用position:fixed可直接实现悬浮工具栏,通过right和bottom设置定位,z-index确保层级在上,flex布局垂直排列按钮,并配合媒体查询适配移动端,添加过渡效果提升交互体验。182 收藏