-
可通过五种方式实现网页文字自动滚动:一、过时但兼容的marquee标签;二、符合现代标准的CSS动画;三、灵活可控的JavaScript方案;四、基于scroll-snap的分段跳变式;五、轻量第三方库Marquee.js。
-
将响应式布局改为固定宽度布局的核心是删除所有流式相关CSS并锁定容器宽度:删掉viewport缩放控制、清除百分比/相对单位、移除媒体查询、覆盖框架容器断点、重置图片iframe的max-width。
-
WeakMap和WeakSet的主要作用是存储弱引用对象,避免内存泄漏。当对象仅被WeakMap或WeakSet引用时,仍可被垃圾回收机制回收,而Map和Set的引用会阻止对象被回收。例如,将对象设为null后,若仅被WeakMap引用,则该对象可被回收。适用WeakMap的场景包括:1.存储私有数据或元数据,如记录DOM元素状态而不污染属性;2.缓存对象相关数据,如组件状态或计算结果,对象销毁后缓存自动释放;3.观察或监听对象行为,判断对象是否仍在使用中。WeakSet适用于:1.标记对象是否已处理过;
-
JavaScript异步编程是单线程事件循环环境下的刚性需求;fetch默认不阻塞主线程因浏览器禁用同步网络请求,且必须用.then()或await消费Promise;fs.readFileSync会阻塞Node.js主线程,降低并发吞吐量,应改用fs.promises.readFile等异步方案。
-
BigInt与Number不能自动互转,必须显式转换;BigInt转Number用Number()但仅在±2⁵³−1内安全,超限会精度丢失或抛RangeError;Number转BigInt用BigInt()只接受整数,小数截断,NaN/Infinity报TypeError。
-
text-overflow:ellipsis必须同时满足四个条件才生效:块级或可设宽高元素、显式设置width/max-width、white-space:nowrap、overflow:hidden;缺一不可。
-
HistoryAPI允许在不刷新页面的情况下操作浏览器历史记录,支持查看记录数量与状态、前进后退跳转、添加或替换历史条目,并通过监听popstate事件响应导航变化,是实现单页应用路由的核心技术。
-
prefetch不适合硬写在HTML中,因会浪费流量、不可控且Safari/iOS支持差;应采用行为触发(如hover)、动态注入link标签、结合网络条件兜底的方案。
-
JavaScript单页应用路由核心是利用HistoryAPI(pushState/replaceState/popstate)或hash模式实现URL变更不刷新页面,通过监听URL变化匹配路由表并动态渲染视图,主流框架如ReactRouter、VueRouter均基于此原理封装。
-
方括号[]在JavaScript正则中定义字符集,匹配其中任意一个字符;^在开头表示否定,-在中间表范围,]需首置或转义,Unicode推荐用\p{Script=Han}等预定义类。
-
必须拆开用IndexedDB管业务数据、CacheAPI管静态资源:前者支持结构化查询与事务,后者可拦截网络请求缓存资源;二者共用ServiceWorker生命周期但数据隔离,避免混存导致的TypeError或性能问题。
-
Flex容器默认不换行,关键在于flex-wrap属性(默认nowrap);开启wrap后子项仍不换行需检查flex-shrink和宽度设置;多行对齐用align-content而非align-items。
-
应采用类选择器统一定义公共样式,提取为语义化类名如.text-primary、.btn-sm;支持多类组合使用;遵循BEM命名规范避免冲突;通过CSS自定义属性管理可复用值以提升可维护性与主题切换能力。
-
CSS中唯一的注释方式是块注释/*...*/,可用于多行注释、代码禁用和模块划分;它在调试、团队协作和代码维护中发挥重要作用,通过合理使用可提升代码可读性和可维护性。
-
用padding-top:56.25%+position:relative/absolute实现16:9容器,确保video有明确宽高后object-fit:cover才生效;aspect-ratio更简洁但iOS15.3及更早不支持,需降级。