前端技术文章
-
Vue响应式系统通过重写数组原型的7个变异方法(push、pop等)并手动触发更新来实现响应,因原生方法不触发getter/setter;Vue2用defineProperty补漏,Vue3用Proxy仍需重写原型方法。174 收藏 -
justify-content:center仅控制主轴(默认水平)居中,垂直居中需配合align-items:center,且父容器须有明确高度(如min-height:100vh),否则无效。395 收藏 -
transform:translateZ(0)不提升层级,而是创建新层叠上下文,使子元素z-index仅在该上下文中生效,无法与外部元素比较,导致遮挡关系不稳定。135 收藏 -
color-mix()会自动截断超出范围的颜色值,但无法修复设计逻辑缺陷:LCH的l、c和sRGB分量均被clamp到合法区间,却可能导致静默降饱和或灰蒙蒙效果,且不同浏览器的色域映射策略不同。190 收藏 -
JavaScript混入(Mixin)非语言原生特性,是通过Object.assign或高阶类工厂模拟多继承的复用模式,不改变继承链,但需注意同名方法覆盖、不可枚举属性遗漏及副作用管理。349 收藏 -
some比forEach+手动中断更合适,因其天然支持短路:一旦某规则返回true即停止遍历,语义清晰且避免冗余校验;而forEach需抛错或标志位,易出错且可读性差。266 收藏 -
JavaScript日期对象初始化需注意时区差异和字符串解析歧义,应优先使用数字参数或带时区的ISO格式;获取年月日等值须用getFullYear()等现代方法;格式化推荐toISOString()截取或padStart()补零;加减月份需警惕溢出,建议用专业库处理。350 收藏 -
动态路由参数丢失的根本原因是动态注册的路由在页面刷新后内存清空,导致无法还原params;常见于登录后调用addRoute添加/user/:id等路由却未持久化或重注册,且守卫中误用next(path)丢弃参数。134 收藏 -
CSS本身不支持JSON变量或export语法,:export是CSSModules构建时提取键值对为JS对象的特性,非运行时CSS变量;它不支持嵌套、数组、外部JSON导入,与CSS自定义属性无关。262 收藏 -
:required伪类仅匹配原生支持required属性的表单元素(input/select/textarea)且HTML中真实存在required属性;JS设置property、框架未透传、ShadowDOM隔离、Safari旧版bug或选择器错误均会导致失效。420 收藏 -
使用CSS变量与JavaScript实现动态换肤,通过定义:root变量和data-theme属性切换主题,结合localStorage保存用户偏好,可高效支持夜间模式与自定义主题色。180 收藏 -
HTML倒计时精度取决于JS逻辑、时间源与前后端协同,而非视觉刷新;须用Date.now()比对服务端时间戳,避免setInterval漂移、Safari解析错误及前端校验失效。338 收藏 -
strong表达语义重要性,影响SEO和屏幕阅读器;b仅控制视觉加粗,无语义。前者被读屏软件加重音、搜索引擎加权,后者完全静默;滥用strong会降权,纯样式需求时b更干净。327 收藏 -
理解this和原型的关键是观察调用位置与方式:调用位置决定this起点(如obj.fn()中this指向obj,f=obj.fn;f()则丢失绑定),调用方式分普通/方法/构造/显式四种;原型是委托查找链,实例通过__proto__沿prototype链向上查找属性。449 收藏 -
现代离线Web应用采用ServiceWorker结合CacheAPI实现资源缓存,通过Workbox简化开发并使用IndexedDB进行数据持久化,形成稳定可控的离线架构。217 收藏