前端技术文章
-
justify-content在flex换行后并非失效,而是仅作用于每行内部;末行对齐需用grid、gap+margin、占位符或JS动态补全等方案实现。327 收藏 -
0b是纯语法糖,仅改变数值书写形式,编译期即转换为等价整型常量,不影响位运算逻辑、执行耗时及生成的机器码,与十进制或十六进制写法行为完全一致。327 收藏 -
appearance:none在iOSSafari上对select、date、number等控件基本无效,是Apple的系统级限制,旨在保障可访问性;仅text、search、textarea、button、checkbox、radio等基础控件在iOS≥16.4且配合-webkit-appearance:none时部分生效。327 收藏 -
命令模式通过将请求封装为对象,实现了请求发送者与接收者的解耦,使操作可参数化、存储、传递及撤销;它解决了复杂操作中高耦合和扩展难的问题,支持撤销/重做、宏命令、任务队列等场景;典型应用包括GUI按钮菜单、图像处理宏、异步任务队列和游戏行为控制;但其缺点是会增加类的数量,可能导致过度抽象,且撤销逻辑实现复杂,需权衡使用场景以确保收益大于成本。327 收藏 -
[...newSet(arr)]是最轻量的数组去重方式,利用Set成员唯一性(SameValueZero比较)自动过滤重复值,支持基础类型按值、引用类型按地址去重,但对象数组需额外按字段处理。327 收藏 -
router.push是一次受控的响应式视图迁移:先通过history.pushState同步URL并生成RouteLocation,再匹配路由、执行可中断的导航守卫链,最后协调组件卸载/挂载与响应式更新。327 收藏 -
strong表达语义重要性,影响SEO和屏幕阅读器;b仅控制视觉加粗,无语义。前者被读屏软件加重音、搜索引擎加权,后者完全静默;滥用strong会降权,纯样式需求时b更干净。327 收藏 -
ReportingAPI由浏览器根据HTTP响应头自动触发,需服务器配置Report-To头和CSP中的report-to指令,仅上报CSP违规、证书错误等内核级安全事件,不处理JS运行时错误。327 收藏 -
V8内联函数的关键是安全性而非调用频次:add因纯函数、无副作用、AST简单而被内联;computeWithSideEffect含try/catch、eval或动态绑定等破坏控制流可预测性的结构,导致V8放弃内联。327 收藏 -
闭包不是中间件,但可作为构建“逻辑自描述”业务中间件总线的关键粘合剂:通过捕获上下文、封装行为、延迟执行,并自带元信息与可追溯性,实现可组合、可插拔、高性能且自描述的中间件体系。327 收藏 -
path[fill]仅匹配显式声明fill属性的<path>元素,若SVG通过img/object加载、未写fill属性、或处于ShadowDOM中则失效,且无法覆盖内联!important样式。327 收藏 -
inputtype="date"点击无反应是因旧版Safari、安卓WebView等不支持而降级为文本框;需用JS检测el.type==='date'确认支持,设value须为YYYY-MM-DD格式且元素已挂载。327 收藏 -
浮动布局核心优点是支持图文环绕与多栏布局、兼容性好、无间隙问题;缺点是脱离文档流致高度塌陷、易卡住、DOM结构耦合高;清除方式含伪元素法、overflow触发BFC、额外标签法及display:flow-root。327 收藏 -
计算属性实现动态表单校验的核心是规则与状态分离:规则来自配置,状态驱动响应,校验逻辑只读不写、结果自动更新;支持跨字段联动、动态表单项和单元测试,无需手动触发或第三方库。327 收藏 -
Vue响应式失效的根本原因是操作了非代理对象副本或绕开追踪路径。新增属性需显式接入:Vue2用$set,Vue3用Object.assign;数组索引赋值须用变异方法;解构需toRefs;异步数据应合并而非替换引用。327 收藏