-
链表应用对象模拟,节点含value和next;栈用Array的push/pop即可;队列避免shift,宜用双端指针优化。
-
使用Promise封装WebWorker通信能有效解决请求响应匹配困难、回调地狱和错误处理复杂等问题。具体步骤为:1.主线程为每个请求生成唯一requestId并与Promise的resolve/reject方法关联存储;2.封装postMessage方法,返回基于requestId的Promise;3.在onmessage中根据requestId匹配并调用对应的resolve或reject;4.Worker端解析requestId并回传结果或错误;5.增加超时机制避免无限等待;6.统一处理Worker端
-
浏览器存储需按场景选择:localStorage存小数据且持久,sessionStorage限当前标签页,cookies随请求发送且有大小限制,IndexedDB适合结构化大数据。
-
HTML不处理样式,应使用<style>标签、外部CSS或内联style属性;<font>等过时标签无效且报错;内联样式需正确书写CSS规则,类选择器更易维护;常见错误包括拼写、单位、继承及默认样式干扰。
-
Proxy允许拦截对象操作,Reflect提供默认行为方法,二者结合可实现数据监听、日志记录等高级功能,如通过get/set捕获器构建响应式系统或监控方法调用。
-
iOSSafari及WKWebView默认禁止有声视频自动播放,必须同时满足muted、playsinline和用户手势触发(或配置mediaTypesRequiringUserActionForPlayback)三条件;视频还须无音频轨、含关键帧且用H.264编码。
-
transition-timing-function用于控制CSS过渡动画的速度曲线,不改变总时长但影响变化节奏。可选值包括ease、linear、ease-in、ease-out和ease-in-out,分别定义不同的加减速模式。通过cubic-bezier(x1,y1,x2,y2)可自定义贝塞尔曲线实现如弹跳等复杂效果。当过渡多个属性时,可分别为每个属性设置不同的timingfunction,如opacity用linear、transform用ease-out、background-color用eas
-
box-shadow无法直接根据width/height动态变化,纯CSS仅支持calc()配合固定或视口单位;响应式可用媒体查询分段设置,视觉适配可结合transform:scale();严格按像素比例调整须用ResizeObserver+JS;drop-shadow()不推荐用于尺寸绑定场景;WebKit阴影异常需强制图层或降级处理。
-
使用grid-column、grid-row和grid-area可实现CSSGrid子元素跨行跨列布局,分别控制列、行及行列范围,支持起止线和span语法,适用于仪表盘等复杂布局。
-
浏览器需加type="module"且import路径须为相对/绝对/完整URL;Node需.mjs或"type":"module";default与namedexport导入方式不同;import()返回Promise,支持动态路径但需手动处理URL。
-
本文详解为何在实时输入时调用toLocaleString('fr-FR')会导致数字被截断(如输入“22222”变成“2”),根本原因是法语格式插入的窄不换行空格(U+202F)被parseInt()提前终止解析;并提供健壮、用户体验友好的解决方案。
-
IE11对HTML5video支持不完整:仅支持MP4/H.264+AAC,需显式声明type="video/mp4";动态设置src后须等待loadedmetadata事件再play();需检查canPlayType()并启用video.js等兼容方案。
-
Flex嵌套在Grid中子元素不撑开,根本原因是Grid项默认按内容收缩且无明确高度,导致Flex容器主轴无法感知可用空间;需为Grid单元格设min-height:0或height:100%、Flex容器设height:100%或min-height:0,并避免align-items:stretch与height:fit-content冲突。