-
JavaScript实现推送通知主要依赖两个核心机制:浏览器原生的NotificationAPI(用于显示本地通知)和PushAPI+ServiceWorker(用于接收服务器发起的后台推送)。很多人混淆二者,这里先明确:NotificationAPI本身不收消息,只负责“显示”;真正实现远程推送必须配合PushAPI和后台服务。一、启用NotificationAPI(用户授权与显示)这是推送功能的第一步,必须获得用户明确授权才能显示通知:调用Notifica
-
Set是JavaScript中用于存储唯一值的数据结构,其核心特点是元素不可重复。1.创建实例后通过add添加元素,重复值不会被加入;2.使用has检查存在性,delete删除元素,size获取数量;3.Set遍历可用for...of或forEach;4.清空使用clear方法;5.常见用途包括数组去重、快速查找判断、集合运算(如并集、交集、差集);6.与数组相比,Set更适合需要唯一性和高效成员检测的场景,而数组适合依赖索引顺序和允许重复的情况;7.Set可存储原始值和对象引用,但对象比较基于引用地址,
-
本文详解JavaScript中async函数为何“不返回响应”,并提供可运行的修复方案、代码优化建议及最佳实践,帮助初学者理解Promise消费逻辑与顶层await的使用场景。
-
HTML4兼容IE6+等老浏览器,HTML5则要求IE9+;老浏览器需通过DOCTYPE、HTML5Shiv和特性检测实现有限兼容,但核心API无法真正支持。
-
使用CSStransition实现图片轮播的平滑过渡,首先通过opacity或transform属性设置淡入淡出或滑动效果,结合overflow:hidden的容器与JavaScript控制active类或位移,实现自动或手动切换,关键在于为opacity或transform添加transition以提升动画流畅度与性能。
-
Flexbox通过flex-wrap:wrap配合子项width或flex-basis控制列数,而非容器设列;推荐用flex:00+calc()和gap实现响应式布局,避免flex:1和margin混用。
-
text-decoration-color能单独设置删除线颜色,但必须与text-decoration-line:line-through配合使用,否则无效;不支持渐变色,旧版Safari和IE不支持,兼容性差时可用伪元素模拟。
-
setTimeout只执行一次,setInterval反复执行;前者注册单次未来任务并销毁,后者以最小间隔重复调度,但不保证准时,易积压或跳过;推荐用setTimeout递归实现可控轮询。
-
答案:移动端fixed底部导航失效主因是视口变化和系统行为,可通过使用100dvh、监听resize事件判断键盘弹出、避免transform干扰来解决。
-
本文详解如何使用JavaScript的sort()方法,结合正则提取与数值比较,实现对含数字后缀的文件名数组进行正确升序排序,避免默认字符串排序导致的13810<1386等逻辑错误。
-
JavaScript垃圾回收通过标记-清除算法自动管理内存,闭包因持续持有对外部变量的引用而使对象保持可达,导致内存泄漏;需及时清理定时器、事件监听器,避免隐式强引用。
-
浏览器渲染HTML需经解析、构建、布局、绘制流水线;HTML解析阻塞于同步脚本,CSSOM与DOM合成渲染树,重排重绘影响性能,DevTools可定位瓶颈。
-
装饰器是JavaScript中用于修改类、方法等行为的语法特性,以@符号声明,属Stage3提案,需Babel或TypeScript支持;常用于日志、权限校验等场景,分类型装饰器、方法装饰器等,支持叠加使用但需注意this绑定与执行顺序。
-
答案:使用CSS的position:fixed属性将导航栏固定在页面顶部,通过top:0使其紧贴视窗顶端,配合width:100%和z-index确保横向铺满并层级置顶,再为body设置padding-top预留导航栏空间防止内容遮挡,最后可添加box-shadow和transition优化视觉效果。
-
box-sizing:border-box解决width/height与padding/border叠加导致布局溢出的问题,使宽高代表元素总占位尺寸;全局启用需根元素设置并继承,兼顾第三方组件兼容性;在Flex/Grid中提升空间分配可控性,但需注意min/max-width对内容区的压缩及调试时DevTools显示差异。