-
宏任务执行完后立即清空所有微任务,再取下一个宏任务;script是初始宏任务,微任务不触发新循环,只在当前宏任务末尾执行;queueMicrotask比setTimeout(0)更精准可控,但需防微任务无限递归导致卡死。
-
ServiceWorker是浏览器后台脚本,核心用于实现离线体验:通过install阶段预缓存资源、fetch阶段拦截请求并策略化响应、导航失败时返回offline.html,并支持后台同步与页面通信,需注意HTTPS依赖、版本更新机制及缓存策略合理性。
-
响应式表格列宽调整需设置table-layout:fixed使列宽均匀分配,结合百分比宽度与word-wrap处理文本溢出,并通过媒体查询在小屏隐藏非关键列,或用flex布局模拟表格以实现更灵活的自适应效果。
-
caption是表格唯一合法标题,必须作为<table>首个子元素;scope用于<th>定义表头作用范围;summary属性在HTML5中已废弃。
-
IndexedDB不能直接存储XML文档对象,只能存字符串或解析后的JS对象;存字符串无法查询和高效更新,推荐解析为对象并建索引,注意索引限制、命名空间兼容性及schema演进。
-
答案:通过CSS的min-width结合table-layout:fixed可有效控制HTML表格单元格最小宽度。为td/th设置min-width能防止单元格过窄,配合table-layout:fixed提升列宽控制力,再利用类名或选择器为不同列设定特定最小宽度,实现灵活布局。
-
离线缓存的核心是通过ServiceWorker结合CacheAPI实现,1.首先在主线程注册ServiceWorker;2.在sw.js中监听install事件预缓存关键资源;3.在activate事件中清理旧缓存版本;4.在fetch事件中采用“缓存优先,网络回退”等策略响应请求;5.可借助Workbox库简化开发,提升缓存管理的可靠性与效率,最终实现极速加载、网络韧性、流量节省和类原生App体验,显著提升用户在弱网或离线环境下的使用满意度。
-
async函数和回调函数是JavaScript中处理异步操作的不同方式,其核心区别在于代码结构、可读性和错误处理机制。1.回调函数通过将函数作为参数传递,在异步操作完成后执行,但容易导致“回调地狱”,代码嵌套深、逻辑混乱;2.async/await基于Promise,使用同步风格编写异步代码,提升可读性和维护性;3.错误处理方面,回调需在每个函数内手动检查err参数,而async/await通过try...catch集中捕获错误;4.在新项目或支持Promise的API中优先使用async/await,而
-
JavaScript类型转换分为隐式和显式两种:隐式由引擎自动完成,如"5"+3得"53","10"-"2"得8,if中0、""等转为false;显式通过Number()、String()、Boolean()等函数主动转换。需注意[]==false为true、{}+[]结果依赖上下文,建议多用===避免类型转换带来的意外。
-
JavaScript对象是键值对集合,属性访问用点号(合法标识符)或方括号(动态/特殊字符);方法需加()调用,否则仅获函数引用;访问不存在属性返回undefined,安全处理用可选链?.或类型检查。
-
HTML5GeolocationAPI依赖底层系统且需HTTPS/localhost环境;失败主因是权限拒绝、定位服务关闭或超时未设;须完整处理error回调并适配坐标系与设备兼容性。
-
本文详解如何通过原生JavaScript实现点击缩略图动态切换主展示图的功能,解决因DOM选择器误用、事件绑定不当导致的图片不更新问题,并提供健壮、可扩展的代码实现。
-
input[type="checkbox"]和radio不能直接CSS改外观因浏览器原子级渲染,需先用appearance:none解锁;移除后须设宽高、关联label、处理状态与无障碍。
-
ES6是JavaScript的正式升级标准(ECMAScript2015),核心特性包括:let/const替代var实现块级作用域与TDZ;箭头函数无this/arguments但继承外层作用域;解构赋值需设默认值、兜底空对象防错;模板字符串支持表达式但${}内变量未声明即报错;字符串新方法更安全明确。
-
<style>必须放在<head>里,放<body>中会导致渲染闪动或被忽略;支持全部CSS语法但禁用@import;仅适用于单页特有样式,非性能优化手段。