-
JavaScript异步编程本质是避免阻塞主线程,通过将耗时操作交由底层环境处理,主线程继续执行,结果就绪后通知回调;回调函数是基础方式,但易致嵌套过深、错误处理分散,适用于简单场景。
-
:has()能实现“父选择器”效果是因为它支持基于子元素状态向上匹配祖先元素,虽不能选直接父级但可配合>*等达成子变父响应,且纯样式层、轻量声明式。
-
答案:JavaScript内存泄漏主因包括意外全局变量、闭包引用不当、未清理事件监听器、定时器和DOM残留引用,可通过ChromeDevTools检测并采用及时解绑、清除定时器、断开引用来避免。
-
JavaScript操作DOM的核心是获取元素后修改、增删内容及绑定事件。常用方法包括:获取元素(getElementById、querySelector等)、修改内容与属性(textContent、innerHTML、setAttribute等)、添加删除元素(createElement、appendChild、remove等)、事件绑定(addEventListener、event.target等)。
-
JavaScript动画核心是控制样式属性随时间变化,主要通过requestAnimationFrame或setTimeout驱动;现代开发推荐JS控制+CSS实现的组合方式,兼顾性能与可维护性。
-
答案:CSS可通过animation-name用逗号分隔多个动画,并与duration、timing-function等属性按序对应,推荐使用animation简写形式,如animation:slideIn1sease-out,fadeIn2slinear,rotate0.5sease-ininfinite;多个动画默认同时开始,可借助animation-delay控制时机,属性顺序需一致以避免错位。
-
答案:通过@keyframes定义border-color变化并用animation应用,可实现边框颜色动画;结合:hover与transition适用于悬停交互。示例中边框在红、蓝、绿间循环变色,需确保border-width大于0以保证动画可见,且现代浏览器普遍支持该效果。
-
ChromeDevToolsMemory面板通过堆快照对比(Comparison视图)定位内存泄漏,重点关注RetainedSize大且持续增长的构造函数;需手动触发GC、用Filter筛选、RevealinConsole查引用链;闭包和未清理的事件监听器易致泄漏;WeakMap/WeakRef可安全缓存对象;PerformanceMonitor与AllocationInstrumentation配合可实时监测并精确定位分配泄漏。
-
滚动条在Chrome/Firefox中默认隐藏,需用.force-scrollbar类配合::-webkit-scrollbar和@supports(-moz-appearance:none)强制显示;iOS/Android不支持或禁用滚动条UI,应改用自定义提示;overflow预留空间会影响布局,需用padding-right或Flex/Grid规避。
-
Canvas2D上下文无法移除,只能清空或覆盖;clearRect(0,0,canvas.width,canvas.height)是唯一标准清空方式,不重置上下文状态;重置需save/restore或手动还原;释放内存须设canvas.width=0或移除DOM节点。
-
答案:优化JavaScript数组操作需减少遍历次数、避免频繁修改结构、预分配数组大小。应合并操作为单次遍历,优先使用push/pop,慎用unshift/shift,大数组可选for循环或工具库,明确长度时预创建数组以提升性能。
-
HTML元素加microdata需同时使用itemscope、itemtype、itemprop三属性:itemscope置外层容器,itemtype设为schema.org合法URL,itemprop用于子元素并严格匹配属性名。
-
字符串转数组用split(),空字符串split("")返回空数组;includes()语义清晰但IE不支持,indexOf()可定位且兼容IE;replace()需/g或replaceAll()才替换全部;拼接长字符串优先用模板字面量或join()。
-
Base64编码非加密而是格式转换,用于安全传输二进制数据;需用TextEncoder+Uint8Array处理Unicode字符再btoa,解码则用atob+Uint8Array+TextDecoder还原。
-
答案:HTML弹窗通过HTML、CSS和JavaScript实现,核心是创建默认隐藏的浮层元素并由交互触发显示。首先构建包含半透明背景和内容区域的语义化结构,使用CSS设置fixed定位、z-index层级、居中布局及过渡动画,并通过JavaScript控制显示隐藏逻辑,实现点击打开、关闭按钮、点击遮罩或按Esc键关闭等交互功能;同时可借助:focus、键盘事件提升可访问性,现代方案可用原生<dialog>标签简化开发,但需考虑浏览器兼容性问题。