-
节流是固定频率执行,防抖是停止触发后执行一次;节流适用于需持续响应的场景如滚动监听,防抖适用于只关心最终状态的场景如搜索联想。
-
浏览器支持NotificationAPI需同时满足:Notification构造函数存在(typeofNotification!=='undefined')且Notification.permission可读;Safari旧版、IE不支持,Edge18+、Chrome、Firefox、新版Safari支持。
-
预加载(preload)是高优先级、立即下载当前导航必需资源,预取(prefetch)是低优先级、空闲时下载未来可能使用的资源;前者提升首屏确定性,后者优化后续交互速度。
-
accent-color可直接修改checkbox、radio、range和progress的用户交互高亮色;对select、textarea、text等无效,需手动样式覆盖。
-
Number.isFinite仅判断值是否为有限的number类型,不进行类型转换;字符串、布尔值、null等非number类型及Infinity、NaN均返回false,与全局isFinite的关键区别在于后者会隐式转换。
-
IIFE用于ES5及之前模拟块级作用域,解决var变量提升、循环闭包、全局污染等问题;通过自调用函数创建独立词法作用域,封装私有变量并暴露公共接口;ES6后被let/const和模块系统取代。
-
在async函数中,若在作用域内重复声明同名变量(如constdata),会遮蔽外部let声明的数组,导致后续调用push()时因data指向JSON对象而报错“pushisnotafunction”。
-
:not(:first-child)更可靠,因其只对非首子元素生效,避免首项溢出、适配任意容器、不依赖JS、兼容SSR,且不受父容器display类型限制。
-
按钮hover闪一下才变色是因为未在默认状态声明transition,且起始值不明确(如未设background-color或用transparent);应始终在非:hover状态写transition,并避免使用不可插值属性或display等不支持过渡的属性。