-
WebSocket是实时通信的底层协议而非替代方案,需对比SSE、长轮询等技术路径;必须使用场景包括高频双向推送如协作白板、行情推送、游戏同步;其不自动处理重连、心跳等,Socket.IO是兼容性妥协方案,原生WebSocket更优。
-
animation-delay是实现stagger效果最轻量方式,需配合:nth-child或CSS变量动态设置不同延迟,不可全局统一;transition-delay不适用复杂序列动画,且无法与@keyframes配合。
-
直接用ESLint配合no-console规则即可在开发阶段自动提醒冗余console,无需手写AST解析器;它基于AST静态分析,支持配置白名单、适配自定义logger、编辑器实时提醒及自动修复。
-
background-clip:text配合-webkit-text-fill-color:transparent是实现可控七彩文字的核心方案,但Firefox完全不支持;text-shadow仅能模拟发光或描边,无法实现文字内部渐变填充,必须通过背景渐变裁剪实现。
-
linkrel="icon"是浏览器识别网站图标的必要标识,必须写在head中;仅加一行无法覆盖所有设备,需配合apple-touch-icon、manifest等多标签及多尺寸、多格式图标才能确保各平台正常显示。
-
浏览器原生ReadableStream读HTML易因编码、分块边界、标签截断出错;需用TextDecoderStream解码,htmlparser2流式解析更稳,DOMParser需完整字符串;HTMLStream非标准API,普通网页须自建TransformStream实现流式处理。
-
绝对定位元素居中失效的核心原因是父容器未设置position:relative等定位属性且无明确高度,导致top/left基准错误及50%计算为0;需确保父容器有定位上下文和有效高度来源。
-
实现HTML响应式网站需五步:一、语义化HTML结构与视口设置;二、流体网格与相对单位布局;三、移动优先的媒体查询;四、响应式图像处理;五、Flexbox与Grid布局结合。
-
CSS本身不支持pow、sqrt、exp等指数函数,仅靠calc()无法实现真指数运算;需用JavaScript动态计算后通过CSS自定义属性传值,或用贝塞尔曲线模拟非线性效果。
-
Chrome58以下不支持initial关键字,会导致整条CSS规则被忽略,应改用具体初始值(如background-color:transparent)并配合PostCSS处理兼容性。
-
最直接可靠的是Array.prototype.flat(),但默认只扁平一层,需flat(Infinity)彻底展开;兼容老环境或需自定义逻辑时宜用reduce+concat递归实现;扩展运算符配合while仅适用于已知深度;flatMap仅限map后单层扁平。
-
正确设置UTF-8编码、使用lang属性标识语言、通过dir属性控制文本方向、选用支持多语言的字体如NotoSans,并结合CSS处理特殊排版与断行,可实现HTML多语言文本的良好显示与兼容。
-
useInView的observer必须在unmount时显式销毁,否则导致内存泄漏;Vue指令中需在unmounted调用disconnect();原生IntersectionObserver必须调用disconnect()才能释放资源。
-
表单验证通过JavaScript在提交前检查数据有效性,首先构建包含用户名、邮箱、密码的HTML表单,接着绑定submit事件并阻止默认行为,调用validateForm()函数进行字段校验:用户名不能为空,邮箱需符合正则格式,密码长度不少于6位,任一失败则通过showError()显示错误信息并聚焦对应输入框,支持实时blur验证提升体验,最终验证通过后提交并清空表单。
-
JavaScript中的微任务队列没有明确的长度限制,它是一个动态增长的FIFO队列,与当前宏任务的生命周期绑定;1.微任务队列在规范层面无固定上限,理论上可无限增长;2.微任务优先级高于宏任务,在当前宏任务执行后立即清空微任务队列;3.若微任务无限生成,会持续占用主线程,导致页面冻结、宏任务无法执行;4.常见微任务包括Promise回调、MutationObserver、queueMicrotask();5.避免微任务过度膨胀的方法包括避免递归创建微任务、分解大型任务、使用setTimeout调度、利用