前端技术文章
-
readonly的值会随表单提交,disabled的值则完全不提交;前者可聚焦、复制,后者不可交互且置灰,且disabled对所有表单元素生效而readonly仅适用于text/password/textarea。312 收藏 -
label的for属性必须严格匹配控件的id才能正常触发点击和保障可访问性;for只通过id查找元素,与name无关;id必须唯一、大小写敏感、无多余空格或不可见字符;radio/checkbox每项需独立id和for;嵌套写法虽简洁但有局限,显式for+id更稳定;动态生成时需确保id唯一且时机正确。453 收藏 -
BEM通过“块__元素--修饰符”结构解决CSS作用域失控问题:user-card__avatar--large明确标识模块归属、部件身份与状态变体,避免同名类冲突与语义混淆。144 收藏 -
纯HTML无法实现侧边抽屉效果,因其无交互、无状态、无样式控制能力;需HTML提供语义化结构、CSS控制定位动画、JS管理状态与可访问性。155 收藏 -
动态创建<style>标签插入CSS最轻量可控,应使用textContent而非innerHTML;insertRule适合精准增删规则但需注意索引偏移和兼容性;务必通过data-*属性标识并管理样式节点以防重复和泄漏。165 收藏 -
保留大小是定位内存泄漏最核心指标,指对象被回收时能释放的独占内存总量;它比浅层大小更精准、比深层大小更真实,MAT中按RetainedHeap排序可快速定位泄漏源头。369 收藏 -
BFC是解决浮动侧边栏高度不一致导致底色断层的标准解法,推荐overflow:hidden触发;底色伪装和边框拉伸属临时补救,本质未解决问题;现代布局应优先选用Flex或Grid。485 收藏 -
<time>标签仅在需向机器明确传达时间语义时使用,必须添加符合ISO8601标准的datetime属性(含时区),内容与属性逻辑一致,不可替代表单控件,错误格式将导致结构化数据失效或可访问性问题。488 收藏 -
动态路由中基于ID的数据预取核心是页面挂载前发起请求,主流方式为路由守卫(如beforeEach)或setup中useRoute配合异步组件;需校验ID、错误跳转404、AbortController取消请求、服务端预取需同构,避免盲目预取。454 收藏 -
Object.getOwnPropertyDescriptors能获取getter/setter,因为它返回完整属性描述符(含get、set等元信息),而Object.assign和展开运算符仅复制值且忽略访问器;克隆必须用Object.defineProperties配合其结果。345 收藏 -
Firefox默认禁用shape-margin和url()形状解析,需手动开启about:config中layout.css.shape-outside.enabled与layout.css.shape-margin.enabled两项实验标志才能启用完整支持。232 收藏 -
API是约定的通信规则;JavaScript用fetch或XMLHttpRequest调用WebAPI;fetch更现代简洁,需手动处理cookie、JSON解析、HTTP错误及URL参数,POST传JSON须设Content-Type并序列化body。385 收藏 -
Object.assign的同名属性覆盖是按参数顺序的赋值规则:后参数同名属性覆盖前参数,null/undefined被跳过但不改变顺序,原始值转包装对象后无属性可拷贝,嵌套对象整体替换而非深度合并。244 收藏 -
Proxy无法代理原始值,因其target必须为对象;尝试newProxy(42,handler)会抛TypeError;Vue3用ref将原始值封装为{value}对象再代理,以支持响应式。313 收藏 -
JavaScript是运行于多宿主环境的动态弱类型原型语言,核心机制包括执行上下文与调用栈、TDZ、事件循环、this绑定规则及原型链查找逻辑。358 收藏