-
JavaScript异步编程演进路径为:回调函数→Promise→async/await→事件循环与任务队列。1.回调函数导致嵌套过深、错误处理困难;2.Promise通过链式调用和统一捕获改善可读性;3.async/await以同步语法提升逻辑清晰度;4.事件循环机制(微任务优先于宏任务)决定实际执行顺序,理解它有助于掌握异步行为本质。
-
localStorage需手动序列化/反序列化对象,用JSON.stringify()存、JSON.parse()取并捕获SyntaxError;sessionStorage仅当前标签页有效,关闭即销毁;二者均不参与HTTP请求,localStorage同源共享且持久,sessionStorage隔离且临时。
-
不能。浏览器不识别.xlsx格式,a标签download属性仅改后缀,实际下载HTML文件;真正Excel需合法格式(如OOXML)及正确MIME类型application/vnd.openxmlformats-officedocument.spreadsheetml.sheet。
-
视频无法播放主要因格式不兼容、autoplay被阻止、MIME类型错误。应提供MP4和WebM多格式源,添加muted实现静音自动播放,并确保服务器正确配置video/mp4等MIME类型。
-
页面可依系统语言自动切换,需准备对应JSON语言包并用navigator.language.split('-')[0]截取主语言码(如zh-CN→zh),缺失时回退至en;HTML文案须留空或隐藏body防闪动,同步设置document.documentElement.lang确保无障碍与字体正确,localStorage恢复时需处理null、前缀匹配及加载失败等边界情况。
-
Safari对calc()结果执行向下取整(floor),导致宽度/高度差1px;Chrome、Firefox则四舍五入或保留小数,这是WebKit布局阶段的数值处理策略,并非bug。
-
forced-colors是CSS媒体查询,检测系统是否已强制重绘页面颜色;而prefers-contrast仅表示用户偏好信号。前者反映实际生效状态,后者仅为意向,二者不可混用,应分别用于兜底强化与渐进增强。
-
postMessage是唯一可靠、通用且现代浏览器全支持的跨域iframe通信方案;需监听load后发送、校验event.origin、避免使用'*'、子页面早注册message监听器,并防范时序与安全风险。
-
Less响应式分栏核心是编译期精确计算百分比,须用percentage(1/@n)避免calc截断;断点需带单位并用.each遍历;Flex布局中flex-basis优先于width。
-
多用户系统中HTML函数操作硬件需权限与资源管控:一、WebWorkers隔离资源并校验配额;二、服务端网关代理请求并审计权限;三、Manifest声明硬件权限并浏览器强制过滤;四、沙箱iframe注入白名单API并拦截未授权访问。
-
Less中用.make-col循环生成响应式列类需基于@grid-columns动态计算宽度,嵌套断点媒体查询,联动声明.make-row负边距与.make-col内边距,并用extract()按需过滤列数与断点以控制CSS体积。
-
JavaScript不支持真正多继承,但可通过Mixin模式模拟:将多个对象的方法复制或委托到目标对象,实现行为复用;Mixin是提供可复用方法的纯函数或对象,强调横向组合而非纵向继承,常用于日志、缓存等通用能力。
-
output标签需显式绑定+事件触发才更新,无自动响应机制;必须设for属性且ID匹配,用value属性更新,不参与表单提交,移动端Safari兼容性差。
-
background-attachment:fixed在移动端失效是浏览器主动禁用的策略,非兼容性问题;iOS15+Safari和多数Android浏览器均忽略该属性,即使加硬件加速也无效;替代方案为position:sticky模拟视差或scroll-drivenanimations精确控制。
-
ServiceWorker离线缓存必须分install、fetch、activate三阶段协同控制:install预缓存资源,fetch按destination分流响应,activate清理旧缓存并claim接管;任一环节缺失即导致白屏或加载失败。