-
DOMJavaScript动态修改网页的核心是先获取元素再修改其内容、样式、结构或行为;常用方法包括getElementById、querySelector、querySelectorAll、parentElement/children;修改用textContent、innerHTML、classList等。
-
requestAnimationFrame更适合JavaScript动画,因其对齐屏幕刷新节奏、自动适配设备刷新率、后台暂停节能,且动画更顺滑精准;而setTimeout仅尽力执行,易受线程阻塞影响,导致帧率不稳。
-
要标记HTML中当前活动的菜单项,核心方法是使用CSS类结合JavaScript或服务器端逻辑动态管理高亮状态,并添加aria-current属性以增强无障碍性。1.纯CSS类手动管理适用于静态网站,通过在HTML中直接添加如active类控制样式;2.JavaScript动态判断则根据URL匹配链接,通过DOM操作添加或移除active类,适用于单页应用;3.服务器端渲染可在生成HTML时直接注入active类,提升首屏加载体验和SEO;4.所有方法都应结合aria-current="page"属性,以
-
<p>JavaScript中的map方法用于对数组每个元素进行处理并返回新数组。map是数组方法,通过传入函数处理每个元素,返回新数组,原数组不变,例如numbers.map(n=>n*2)返回新数组。常见用途包括:1.数据转换,如提取对象字段;2.不推荐直接调用异步函数,应结合Promise.all使用;3.React中配合JSX渲染列表。注意点有:不修改原数组、不能中途break、别滥用做副作用、必须返回值构建新数组。掌握map能提升代码简洁性和可读性。</p>
-
JavaScript中的微任务会在当前同步代码执行完毕后立即执行,且在浏览器渲染或处理宏任务之前。1.微任务的执行时机是在调用栈清空后、宏任务之前,事件循环会优先清空微任务队列。2.常见的微任务包括Promise回调、queueMicrotask()和MutationObserver回调,它们分别用于异步流程控制、批处理更新和监听DOM变化。3.微任务高优先级确保状态即时更新、提供细粒度控制并减少竞态条件。4.滥用微任务可能导致“微任务饥饿”,应避免无限循环、合理选择任务类型、不执行耗时操作并使用开发者工
-
元素视觉尺寸大于设置值,主要因content-box盒模型下width/height不含padding和border;改用border-box可使宽高包含内边距和边框;margin不增加自身占位但影响间距,需注意外边距合并与溢出问题。
-
box-shadow动画必须使用数值型参数,inset等关键字无法渐变,多层阴影需严格保持参数结构一致,否则动画失效或卡顿;推荐用filter:drop-shadow()替代以提升性能和兼容性。
-
答案:CSS中position属性的常见取值有static、relative、absolute、fixed和sticky。relative元素相对于原位置偏移但仍占据原始空间,不脱离文档流,常作为绝对定位子元素的参考;absolute元素脱离文档流,相对于最近的已定位祖先元素定位,用于弹窗或下拉菜单等场景;fixed元素相对于视口固定,不随滚动移动,适用于导航栏等常显组件;sticky元素在滚动到特定阈值时由相对定位转为固定定位,常用于表头或侧边栏锚定效果。掌握各定位方式的参考系及是否脱离文档流是构建复杂
-
动画延迟与持续时间需协同匹配,确保启动自然、衔接流畅;完整周期为delay+duration,多动画衔接时后者的delay应等于前者duration;配合animation-fill-mode:backwards可避免延迟期样式塌陷;时间单位须统一用秒;ChromeAnimations面板支持实时调试。
-
容器默认无内边距,需按断点设置padding(如px-4sm:px-6lg:px-8),避免嵌套叠加,并为Header/Footer统一添加响应式内边距以保障视觉一致性。
-
虚拟列表通过只渲染可视区域元素来减少DOM数量,提升长列表性能。1.核心原理:根据滚动位置、容器尺寸和项高度计算可见范围,用占位模拟整体高度并复用节点。2.实现结构:定义itemHeight、containerHeight、scrollTop等变量,通过Math.floor(scrollTop/itemHeight)确定起始索引,结合缓冲项计算渲染范围。3.滚动处理:监听scroll事件,用requestAnimationFrame节流,通过transform定位可视项,批量更新避免频繁DOM操作。4.可
-
最常用方法是使用join()方法,它将数组元素用指定分隔符连接成字符串,默认以逗号分隔,支持自定义符号如空格或短横线;示例中['apple','banana','orange']调用join('-')输出apple-banana-orange;包含数字、布尔值等非字符串元素时会自动转为字符串,null和undefined也被处理为对应字符串,末尾的undefined不影响输出;空数组返回空字符串,稀疏数组的空位视为empty并转为空字符串;而toString()方法仅支持逗号分隔,灵活性差,reduce(
-
箭头函数无自有this、不可构造、无arguments、无yield、返回值需注意隐式规则:其this沿用外层,不能new调用,不支持arguments和yield,单表达式自动返回,对象字面量须用小括号包裹。
-
JavaScript垃圾回收依赖自动管理,开发者需通过优化内存使用来提升效率。应减少全局变量和长生命周期对象,及时解除大型对象引用,避免闭包导致的意外保留。注意清理事件监听器、定时器及DOM残留引用,防止内存泄漏。高频操作中避免频繁创建对象,可采用对象池技术。循环中避免内建函数或对象,大数组用后置null。优先使用WeakMap、WeakSet存储关联数据,实现弱引用,降低回收阻碍。保持最小引用,及时释放资源是关键。
-
箭头函数不是语法糖,它与普通函数在this绑定、不可new调用、无arguments三方面存在本质区别,直接替换易引发隐性bug。