-
JavaScript代码分割核心是动态import()实现按需加载,减少首屏体积;它返回Promise,支持变量路径,配合路由、用户行为及webpackChunkName注释可优化分包与加载时机。
-
iPad上audio.play()必须由用户手势触发,否则静默失败;iOS自iOS10起强制限制非交互式播放,即使autoplay+muted也不可靠;首次播放需绑定click/touchend并catch错误。
-
Less中~""用于原样输出字符串,避免编译器解析括号、空格、运算符等;须包裹整个值,不支持内部插值,变量需先拼接再包裹,适用于filter、calc()、@keyframes等场景。
-
优先采用外部样式表并内联关键CSS,通过渐进增强策略提升首屏渲染速度:1.提取首屏关键样式并内联至head;2.异步加载非关键CSS;3.利用构建工具自动化优化;4.结合媒体查询与服务端渲染,实现分层加载,保障基础体验后再增强视觉效果。
-
BroadcastChannel通过同名频道实现同源页面间实时通信,支持结构化克隆数据传输,相比localStorage更高效、语义更清晰,适用于多标签页状态同步。
-
JavaScript解构赋值仅支持可迭代对象和对象:数组、字符串、Map、Set等可数组解构;普通对象、Map键值对等可对象解构;undefined、null、数字、布尔值直接解构会报TypeError。
-
怎样用替代文本域不是“设置出来的”,而是用标签直接写的。很多人卡在第一步:误以为给加个属性就能变多行——不行,type="text"永远单行,type="textarea"不存在。常见错误现象:input设置了rows或cols属性但没效果;加了wrap="soft"也没用;CSS强行设height和white-space后换行显示异常。是独立标签,必须成对出现(...),内容写在标签中间默认可换行、可滚动、支持回车提交(除非form阻止默认行为)
-
tr:nth-child(even)背景不生效主因是DOM结构干扰或优先级覆盖,应改用tr:nth-of-type(even)并检查thead/tbody影响、动态渲染及无障碍对比度。
-
Reflect是JavaScript中唯一专为元编程设计的内置对象,所有方法必须配合Proxy或显式调用才能生效;它不替代点号或方括号语法,而是将隐式操作显式化、可拦截化,核心价值在于可组合、可拦截、可预测的元操作控制。
-
HTML<template>元素是浏览器原生支持的惰性模板机制,不渲染、不执行脚本、不加载资源,仅通过JavaScript克隆插入DOM,具备防XSS、语义清晰、支持ShadowDOM等优势。
-
前端路由异步拦截核心是利用路由守卫配合Promise控制导航,确保权限校验、表单提示、数据预加载等关键操作完成后再跳转,并需超时控制与错误处理。
-
clamp()在margin/padding中按最小值、首选值(需用vmin等可伸缩单位)、最大值线性插值,非自动响应;需设合理上下限、避免单位混用、提供fallback、统一基准并抽离为CSS变量以保维护性。
-
用canvas绘制光晕本质是高斯模糊+径向渐变叠加:先画白色圆形核心,再用createRadialGradient实现透明渐变,最后通过多次drawImage缩放或WebGL做高斯模糊,并以globalCompositeOperation='lighter'分层叠加主光斑、晕环、星芒等组件模拟光学过曝效果。
-
<code>标签仅用于内联短代码,如函数名或命令;多行代码须嵌套在<pre>中,二者语义与用途严格区分,错误使用将导致可访问性与格式问题。
-
NestJS通过模块化设计、依赖注入和分层架构提升应用可维护性。以Module组织业务边界,推荐UserModule等领域划分;利用forRoot()和forFeature()管理配置,支持懒加载优化性能。依赖注入实现服务单例管理,结合Controller、Service、Repository三层分离职责,便于测试与复用。中间件处理日志与CORS,守卫控制权限,拦截器统一响应格式,管道校验数据。支持微服务架构,集成gRPC、Kafka等协议,通过@MessagePattern()定义消息处理,结合CQRS