-
高阶函数是接收函数为参数或返回函数的函数;map要求回调必须返回值,否则填undefined,filter依据返回值真值性筛选,链式调用顺序影响结果,且需注意this绑定问题。
-
原生touch事件足以胜任多数滑动场景,如轮播图、横向滚动等;优先使用touchstart/touchmove/touchend,配合touch-action控制拦截权,避免盲目引入手势库。
-
弱网环境下应利用NetworkInformationAPI获取effectiveType进行图片降级,而非仅监听网络类型;按slow-2g/2g、3g、4g分级加载缩略图/WebP/原图,并结合onerror与超时兜底。
-
本文介绍如何在TypeScript中安全、简洁地实现联合类型参数的运行时区分,推荐使用in操作符进行类型收窄,避免不安全的as断言,提升代码可维护性与类型安全性。
-
现代浏览器取消自动弹窗,因Chrome89+/Edge90+/iOS16.4+移除自动触发的beforeinstallprompt事件,仅允许用户主动点击后调用prompt();需配manifest.json和服务端worker且满足HTTPS等条件。
-
直接写.btn--disabled更可靠,因框架不总在DOM写disabled属性,BEM修饰符显式可控、SSR友好、语义清晰、命名与状态一致、支持组合、避免嵌套和耦合、适配现代工具链且防构建误删。
-
Vue的watch可监听unreadCount变化并触发favicon角标更新和桌面通知,需结合canvas绘制、NotificationAPI及WebSocket/SSE确保状态同步。
-
最简刷新方式是调用window.location.reload(),需带window.前缀;加确认弹窗须用if(confirm())控制;默认会丢失滚动位置和表单输入,SPA中应优先使用路由刷新而非硬刷新。
-
Flex容器默认按主轴方向排列子元素,由flex-direction决定,默认row;2.justify-content、align-items和gap控制间距,可实现居中等布局;3.position:relative不脱离Flex流,可通过偏移调整位置,保留原有空间;4.position:absolute使元素脱离布局流,不参与排列,相对定位祖先定位,不影响其他项;5.微调用margin或transform,覆盖需求用absolute并确保父级定位。
-
可通过loop属性、ended事件监听、setAttribute动态控制或muted+autoplay组合实现HTML5音视频自动循环;loop最简捷,ended事件更可控,动态切换适合交互场景,静音autoplayloop则保障自动播放兼容性。
-
CommonJS采用同步加载和值拷贝,模块导出的是静态值;ES模块支持异步加载和动态引用,导出绑定保持实时更新,两者在加载机制、缓存策略及变量绑定上存在本质差异。
-
用IntersectionObserver实现无限滚动的核心是观察占位元素是否进入视口,而非监听window.onscroll;需设rootMargin提前触发、每次加载后重新observe、校验响应结构、防重复请求与XSS、降级处理兼容性问题。
-
现代Web开发倾向于使用ESM而非传统脚本,原因包括:1.作用域隔离,避免全局变量污染;2.明确的依赖管理,自动解析模块顺序;3.默认异步加载,提升页面性能;4.支持严格模式和CORS;5.支持TreeShaking优化代码体积。
-
header必须为body或语义容器的直接子元素,main只能出现一次且为body直系子元素,footer表示结尾信息不可滥用;三者嵌套错误会破坏可访问性、SEO及HTML5大纲。
-
transition和@keyframes不能混用同一属性,否则会导致卡顿、跳变或keyframes不触发;二者机制独立,animation优先级更高但易冲突;应按职责分离:transition处理简单交互反馈,@keyframes处理多阶段复杂动画,并避免动态修改被占用的属性。