-
BOM核心包括window、location、history等对象:window为全局对象,控制窗口操作;location管理URL跳转与刷新;history实现页面导航;navigator和screen提供环境信息。掌握其用法可有效控制浏览器行为,注意replace不可后退、close仅限脚本打开窗口。
-
metal-gradient并非真实颜色类型,而是通过linear-gradient()叠加多色标、控制透明度与明暗对比模拟金属感;需用4色标实现高光-本体-缓冲-暗部三层过渡,并配合background-size、background-position及background-clip:text等属性精准调控。
-
preload是浏览器提前获取关键资源的声明式方式,不阻塞渲染但提升字体、图片等核心资源加载优先级;需正确设置crossorigin以避免字体重复请求,仅预加载首屏必需的字体变体并搭配font-display:swap,图片preload仅适用于CSS背景图、JS动态插入等特殊高优先级场景。
-
JavaScript数据缓存需按需存储、合理淘汰、安全读写:内存缓存用Map+时间戳+LRU;localStorage需序列化、加版本号、禁存敏感信息;IndexedDB和CacheAPI适用于大容量或离线场景;策略应匹配业务节奏,注重一致性与隔离性。
-
JavaScript数组空位是缺失值的语法表示,非undefined或null;for...in跳过空位,for...of视为空位为undefined;map/filter/forEach忽略空位,Array.from和扩展运算符将其转为undefined;JSON.stringify序列化为空位为null。
-
JavaScript中宏任务可能导致内存问题。宏任务在执行时会分配内存,若处理数据量大、频率高或不当引用外部变量,可能导致内存持续增长甚至泄露。例如,setInterval频繁创建未清理的对象、异步回调挂载全局变量、闭包长期持有外部作用域等均可能引发内存累积。使用Chrome开发者工具的“堆快照”和“分配时间线”可定位内存泄露。解决方法包括及时清除定时器、解除事件监听器、主动设null变量、避免闭包滥用、采用虚拟列表与WebWorkers优化性能。
-
HTML5通过语义化标签、原生音视频、增强表单和本地存储等特性提升网页开发效率。①语义化标签如header、nav、main使结构更清晰,利于SEO和无障碍访问;②video和audio标签取代Flash,实现浏览器原生多媒体支持;③新增input类型和属性(如email、required)优化表单交互;④localStorage、Canvas、Geolocation等API增强Web应用功能,推动网页向原生体验靠近。
-
是的,CSS中padding会导致盒子变大,根本原因在于浏览器默认采用content-box盒模型,即width/height仅指内容区尺寸,padding和border额外增加在内容区外。
-
maxlength属性原生支持input和textarea的字符数限制,浏览器层面拦截输入,避免闪烁问题;需注意拼写正确、仅适用于表单元素,且后端必须重复校验。
-
WebWorkers是浏览器的多线程API,可将耗时任务移至后台线程执行,避免阻塞主线程。通过创建独立JS文件并用newWorker()实例化,主程序与Worker间以postMessage通信,实现如斐波那契计算等密集任务,提升页面响应性。
-
Symbol是JavaScript中用于创建唯一值的原始类型,常用于避免对象属性命名冲突;每次调用Symbol()都会返回唯一值,即使描述相同,因此sym1===sym2为false;用Symbol作属性名可使多个模块添加同名属性而不覆盖;Symbol属性不会被for...in、Object.keys()或JSON.stringify()遍历或包含,需通过Object.getOwnPropertySymbols()显式获取;Symbol适合添加私有或元信息属性,防止命名碰撞和意外修改。
-
最稳妥做法是用setInterval每秒调用updateClock更新textContent,配合Intl.DateTimeFormat格式化时间,并监听visibilitychange事件处理页面可见性变化以避免跳秒。
-
Less中~""用于原样输出字符串,避免编译器解析括号、空格、运算符等;须包裹整个值,不支持内部插值,变量需先拼接再包裹,适用于filter、calc()、@keyframes等场景。
-
JavaScript类是构造函数的语法包装,本质基于原型继承,强制使用new调用、存在TDZ、方法不可枚举且不可构造,继承需严格调用super()。
-
纯CSS轮播关键在scroll-snap实现精准停靠:需设scroll-snap-type:xmandatory、每项scroll-snap-align:center、容器overflow-x:auto+scroll-behavior:smooth,:target仅触发锚点定位。