-
浏览器真正需要的是<metacharset="UTF-8">(必须最前防乱码)、<title>(否则标签页无名)、<base>(若使用则影响所有相对URL)、viewport(移动端必需)和X-UA-Compatible(仅IE8–11有效);CSSlink需在head中阻塞渲染以避免闪烁,script需defer/async避免阻塞解析。
-
WebSQL被废弃因其未进入W3C标准流程,仅是SQLite私有实现,而IndexedDB成为标准替代方案;二者本质不同:WebSQL关系型、SQL驱动,IndexedDB对象存储、键值+索引驱动,迁移需重构数据访问逻辑。
-
HTML5中应使用iframe、div+CSS、object或WebComponents替代已废弃的frameset/frame;iframe支持同源嵌入,div+CSS结合JavaScript可动态加载内容,object提供降级支持,WebComponents实现可复用嵌入。
-
CSS实现文字依次出现的核心是为每个span设置递增的animation-delay并配合统一@keyframes动画,需加forwards保持终态,注意时长与延迟协调及无障碍适配。
-
JavaScript排序算法实现需兼顾原理理解与实测性能;冒泡适合教学,快排平均O(nlogn)但最坏O(n²),归并稳定且O(nlogn),内置sort()通常最快;自写适用于学习、面试、特殊环境或定制需求。
-
WebWorkers是HTML5提供的API,可在后台线程运行脚本以避免阻塞主线程。通过创建Worker脚本、实例化Worker对象并使用postMessage通信,实现如耗时斐波那契计算等任务,确保页面流畅。
-
JavaScript继承核心是原型链与构造函数协作,ES6classextends最推荐,寄生组合式继承经典高效,原型链和借用构造函数各有缺陷。
-
启用flex-wrap:wrap实现换行,通过justify-content设置主轴对齐,结合gap控制间距,子项设flex:01200px保证响应式;末行不对齐时可用伪元素填充或改用Grid布局。
-
使用box-sizing:border-box可解决等高列中height与padding导致的高度不一致问题,配合Flexbox实现自适应等高布局,确保各列视觉高度统一且避免溢出。
-
JavaScript手动拖放核心是mousedown记录偏移并绑定document的mousemove和mouseup,mousemove时用偏移量更新元素位置,mouseup时解绑事件并重置状态。
-
本文讲解如何利用事件委托机制解决动态生成按钮无法立即响应点击移除的问题,避免重复绑定/解绑事件监听器导致的逻辑冲突,并提供可直接运行的最小化示例代码。
-
WebCryptoAPI可在浏览器中实现安全加密,支持AES-GCM等算法,通过generateKey生成密钥,encrypt和decrypt进行加解密,需使用随机IV并避免硬编码密钥,确保运行在HTTPS或localhost环境,推荐结合JWK格式导出与安全存储机制保障数据安全。
-
Promise.all()用于并行处理多个Promise,返回所有Promise完成后的结果数组。1)它简化了多个异步操作的处理,2)但需注意任何一个Promise被拒绝会导致整体失败,3)结果数组顺序与传入顺序一致,4)不提升性能但使代码更易管理,5)可与Promise.allSettled()结合使用以处理所有Promise结果。
-
FetchAPI轻量原生,适合简单请求;Axios功能完整,适合中大型项目。选择取决于项目规模、兼容性需求及团队习惯,建议统一使用一种并封装请求工具函数。
-
始终用UTC处理和存储时间,展示时再转换为目标时区。前后端交换时间使用ISO8601格式(如2025-04-05T10:00:00Z),确保时间纯净无歧义。避免依赖用户本地时间,关键时间由服务端提供UTC时间。推荐使用Luxon或Day.js处理时区转换,原生Date易出错。展示非本地时间时应标注时区,如(GMT+8)或EDT,可借助Intl.DateTimeFormat自动格式化。统一团队时间库和使用规范,减少跨时区问题。