在 mousedown 事件中,如何区分左键、中键和右键?对应的 button 值是多少?
在 mousedown 事件中,如何区分左键、中键和右键?对应的 button 值是多少? 本文先给出可直接复述的结论,再用最小代码说明MouseEvent button 区分左键中键右键的工作方式、判断依据、项目边界和常见误区。
程序员面试题库第 33 页,收录第 1601–1650 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
在 mousedown 事件中,如何区分左键、中键和右键?对应的 button 值是多少? 本文先给出可直接复述的结论,再用最小代码说明MouseEvent button 区分左键中键右键的工作方式、判断依据、项目边界和常见误区。
mouseleave 事件不冒泡,那么要实现鼠标离开一组子元素的统一处理,可以使用什么替代方案? 本文先给出可直接复述的结论,再用最小代码说明mouseleave 不冒泡 替代方案的工作方式、判断依据、项目边界和常见误区。
Pointer Events 与 Mouse Events 相比有哪些优势?在处理触摸设备时为何推荐使用前者? 本文先给出可直接复述的结论,再用最小代码说明Pointer Events 与 Mouse Events 区别的工作方式、判断依据、项目边界和常见误区。
在处理单指触摸时,使用 Pointer Events 与 Touch Events 有何区别?哪种更适合跨设备? 本文先给出可直接复述的结论,再用最小代码说明Pointer Events 与 Touch Events 区别的工作方式、判断依据、项目边界和常见误区。
哪些情况会触发 pointercancel 事件?实现拖拽时为何需要监听它? 本文先给出可直接复述的结论,再用最小代码说明pointercancel 事件触发场景的工作方式、判断依据、项目边界和常见误区。
setPointerCapture 有什么作用?何时需要手动释放?给出一个拖拽实现的典型用法。 本文先给出可直接复述的结论,再用最小代码说明setPointerCapture 拖拽实现 用法的工作方式、判断依据、项目边界和常见误区。
如何用 preventDefault 阻止滚轮事件引发的页面滚动,但保留自定义滚轮行为?需要注意什么? 本文先给出可直接复述的结论,再用最小代码说明wheel 事件 preventDefault 自定义滚动的工作方式、判断依据、项目边界和常见误区。
本题解析 addEventListener 回调中 return false 与调用 preventDefault() 的本质区别,说明 return false 仅对 on-event 处理器有效,不适用于 addEventListener,并给出正确实践。
DOM 事件传播的三个阶段(捕获、目标、冒泡)分别是什么,监听器在哪个阶段触发? 本文先给出可直接复述的结论,再用最小代码说明DOM 事件传播 捕获 冒泡 阶段的工作方式、判断依据、项目边界和常见误区。
同一元素上绑定多个相同类型事件,两个监听器的触发顺序如何保证? 本文先给出可直接复述的结论,再用最小代码说明同一元素多个事件监听器触发顺序的工作方式、判断依据、项目边界和常见误区。
scroll 事件本身不冒泡,如何在不给每个滚动容器绑定监听器的情况下统一管理? 本文先给出可直接复述的结论,再用最小代码说明scroll 事件不冒泡 捕获委托的工作方式、判断依据、项目边界和常见误区。
scroll 事件触发非常频繁,如何有效地控制处理频率?请对比 rAF、timeout 和 passive 的配合。 本文先给出可直接复述的结论,再用最小代码说明scroll 事件节流 requestAnimationFrame的工作方式、判断依据、项目边界和常见误区。
scrollend 事件与 scroll 事件有何不同?在处理“停止滚动后执行操作”时如何利用? 本文先给出可直接复述的结论,再用最小代码说明scrollend 与 scroll 事件区别的工作方式、判断依据、项目边界和常见误区。
本题对比 stopPropagation() 与 stopImmediatePropagation():前者允许同元素其他监听器执行完再停止传播,后者立即终止同元素剩余监听器并停止传播,文中给出模拟分发代码、适用场景与失效边界。
如何手动创建并派发一个冒泡的 ClickEvent?有哪些属性需要设置? 本文先给出可直接复述的结论,再用最小代码说明dispatchEvent 创建派发冒泡事件的工作方式、判断依据、项目边界和常见误区。
事件回调中 event.target 与 event.currentTarget 有何区别?在事件委托中应使用哪个? 本文先给出可直接复述的结论,再用最小代码说明event.target 与 currentTarget 区别的工作方式、判断依据、项目边界和常见误区。
CSS 属性 touch-action 如何影响 touch 事件的默认行为?与使用 preventDefault 相比有何差异? 本文先给出可直接复述的结论,再用最小代码说明touch-action 与 preventDefault 区别的工作方式、判断依据、项目边界和常见误区。
TouchEvent 中 touches、targetTouches、changedTouches 三个列表的区别是什么?在 end 事件中应使用哪个? 本文先给出可直接复述的结论,再用最小代码说明touches targetTouches changedTouches 区别的工作方式、判断依据、项目边界和常见误区。
什么情况下会触发 touchcancel?在实现自定义滑动手势时为何要处理它? 本文先给出可直接复述的结论,再用最小代码说明touchcancel 事件触发场景的工作方式、判断依据、项目边界和常见误区。
appendChild 和 insertBefore 在插入节点时的行为有何不同? 本文先给出可直接复述的结论,再用最小代码说明appendChild 和 insertBefore 区别的工作方式、判断依据、项目边界和常见误区。
slot.assignedNodes() 和 assignedElements() 的区别在何处? 本文先给出可直接复述的结论,再用最小代码说明assignedNodes 和 assignedElements 区别的工作方式、判断依据、项目边界和常见误区。
为什么自定义元素需要 attachShadow,而普通 Div 也能附加 Shadow Root? 本文先给出可直接复述的结论,再用最小代码说明自定义元素 attachShadow 作用的工作方式、判断依据、项目边界和常见误区。
Attr 接口在 DOM 中代表什么?为什么不是所有属性都能当作节点? 本文先给出可直接复述的结论,再用最小代码说明DOM Attr 接口是什么的工作方式、判断依据、项目边界和常见误区。
childNode.replaceWith 和 parentNode.replaceChild 有什么不同? 本文先给出可直接复述的结论,再用最小代码说明replaceWith 和 replaceChild 区别的工作方式、判断依据、项目边界和常见误区。
compareDocumentPosition 可以返回哪些标志位?常用在哪里? 本文先给出可直接复述的结论,再用最小代码说明compareDocumentPosition 标志位用途的工作方式、判断依据、项目边界和常见误区。
事件对象中 composedPath() 与 path 属性有什么不同?与 Shadow DOM 有何关系? 本文先给出可直接复述的结论,再用最小代码说明composedPath 和 event.path 区别的工作方式、判断依据、项目边界和常见误区。
createTextNode 的使用场景与直接设置 textContent 有何不同? 本文先给出可直接复述的结论,再用最小代码说明createTextNode 和 textContent 区别的工作方式、判断依据、项目边界和常见误区。
createElement 和 cloneNode 在创建新节点时有什么实质区别? 本文先给出可直接复述的结论,再用最小代码说明createElement 和 cloneNode 区别的工作方式、判断依据、项目边界和常见误区。
自定义元素生命周期中 connectedCallback 和 disconnectedCallback 分别在什么时机触发? 本文先给出可直接复述的结论,再用最小代码说明connectedCallback 和 disconnectedCallback 触发时机的工作方式、判断依据、项目边界和常见误区。
document.documentElement 和 document.body 分别指向什么节点? 本文先给出可直接复述的结论,再用最小代码说明documentElement 和 document.body 区别的工作方式、判断依据、项目边界和常见误区。
document.visibilityState 与 document.readyState 分别反映文档什么状态? 本文先给出可直接复述的结论,再用最小代码说明visibilityState 和 readyState 区别的工作方式、判断依据、项目边界和常见误区。
DocumentFragment 是用来解决什么问题的? 本文先给出可直接复述的结论,再用最小代码说明DocumentFragment 作用的工作方式、判断依据、项目边界和常见误区。
firstChild 和 firstElementChild 有何不同? 本文先给出可直接复述的结论,再用最小代码说明firstChild 和 firstElementChild 区别的工作方式、判断依据、项目边界和常见误区。
通过 getAttribute 读取 HTML 属性与直接访问元素属性(如 id)有何本质区别? 本文先给出可直接复述的结论,再用最小代码说明getAttribute 和元素属性访问区别的工作方式、判断依据、项目边界和常见误区。
HTMLCollection 的 namedItem 方法在什么时候有用?它如何处理重名的项? 本文先给出可直接复述的结论,再用最小代码说明HTMLCollection namedItem 重名处理的工作方式、判断依据、项目边界和常见误区。
importNode 和 adoptNode 在跨文档复制节点时有何区别? 本文先给出可直接复述的结论,再用最小代码说明importNode 和 adoptNode 区别的工作方式、判断依据、项目边界和常见误区。
innerHTML 和 outerHTML 分别影响元素的哪些部分? 本文先给出可直接复述的结论,再用最小代码说明innerHTML 和 outerHTML 区别的工作方式、判断依据、项目边界和常见误区。
insertAdjacentHTML 与设置 innerHTML 在插入内容上有什么关键差异? 本文先给出可直接复述的结论,再用最小代码说明insertAdjacentHTML 和 innerHTML 区别的工作方式、判断依据、项目边界和常见误区。
isSameNode 和 isEqualNode 在比较节点时有什么不同? 本文先给出可直接复述的结论,再用最小代码说明isSameNode 和 isEqualNode 区别的工作方式、判断依据、项目边界和常见误区。
MutationObserver 回调中 MutationRecord 的 target、addedNodes 和 type 分别表示什么? 本文先给出可直接复述的结论,再用最小代码说明MutationRecord target addedNodes 含义的工作方式、判断依据、项目边界和常见误区。
在 observe 时 childList、attributes 和 characterData 这三个选项分别监控什么变更? 本文先给出可直接复述的结论,再用最小代码说明MutationObserver observe 配置项的工作方式、判断依据、项目边界和常见误区。
MutationObserver.takeRecords 的用途和时机是什么?它和回调有什么关联? 本文先给出可直接复述的结论,再用最小代码说明MutationObserver takeRecords 用途的工作方式、判断依据、项目边界和常见误区。
NodeList 和 HTMLCollection 有什么区别? 本文先给出可直接复述的结论,再用最小代码说明NodeList 和 HTMLCollection 区别的工作方式、判断依据、项目边界和常见误区。
normalize 方法的作用是什么?它会在什么情况下拆分文本节点? 本文先给出可直接复述的结论,再用最小代码说明Node normalize 方法作用的工作方式、判断依据、项目边界和常见误区。
自定义元素必须定义 observedAttributes 才能收到 attributeChangedCallback 吗? 本文先给出可直接复述的结论,再用最小代码说明observedAttributes 与 attributeChangedCallback的工作方式、判断依据、项目边界和常见误区。
parentNode.children 和 parentNode.childNodes 在遍历子节点时有什么区别? 本文先给出可直接复述的结论,再用最小代码说明children 和 childNodes 区别的工作方式、判断依据、项目边界和常见误区。
querySelector 和 getElementById 在查找元素时有何不同? 本文先给出可直接复述的结论,再用最小代码说明querySelector 和 getElementById 区别的工作方式、判断依据、项目边界和常见误区。
缺少 <!DOCTYPE html> 会影响 DOM 树的哪些行为? 本文先给出可直接复述的结论,再用最小代码说明缺少 DOCTYPE 对 DOM 的影响 quirks mode的工作方式、判断依据、项目边界和常见误区。
range.cloneRange 和 range.cloneContents 的区别是什么? 本文先给出可直接复述的结论,再用最小代码说明cloneRange 和 cloneContents 区别的工作方式、判断依据、项目边界和常见误区。
Range.extractContents 和 deleteContents 有什么不同? 本文先给出可直接复述的结论,再用最小代码说明Range extractContents 和 deleteContents 区别的工作方式、判断依据、项目边界和常见误区。