Native DOM & Web APIs Cheat Sheet
Quick reference guide for Native DOM & Web APIs: querySelector, event delegation, MutationObserver, IntersectionObserver, and Storage.
Web & Network
dom
web-api
javascript
Native browser DOM APIs provide high-performance methods for selecting elements, handling events, observing viewport visibility, and persisting data locally.
Element Selection & Manipulation
javascript
// Select single or multiple elements
const mainTitle = document.querySelector("#main-title");
const activeItems = document.querySelectorAll(".nav-item.active");
// Class & Attribute manipulation
mainTitle.classList.add("highlight", "visible");
mainTitle.classList.toggle("dark-mode");
mainTitle.setAttribute("data-state", "open");
// Dynamic Element Creation & Insertion
const newCard = document.createElement("div");
newCard.className = "card";
newCard.textContent = "Card Content";
document.body.appendChild(newCard);
Event Delegation Pattern
Attach a single event listener to a parent container rather than binding listeners to every individual child.
javascript
const listContainer = document.querySelector("#item-list");
listContainer.addEventListener("click", (event) => {
const target = event.target;
if (target.matches("button.delete-btn")) {
const itemId = target.closest("li").dataset.id;
console.log("Delete item:", itemId);
}
});
IntersectionObserver & MutationObserver
javascript
// IntersectionObserver: Infinite scroll / Lazy loading
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
console.log("Element is visible in viewport:", entry.target);
}
});
}, { threshold: 0.5 });
observer.observe(document.querySelector("#sentinel"));
Web Storage API
Table
| Storage Type | Persistence | Size Limit | Accessibility |
|---|---|---|---|
localStorage | Permanent until explicitly cleared | ~5MB | Same-Origin |
sessionStorage | Cleared when browser tab closes | ~5MB | Tab / Same-Origin |
IndexedDB | Permanent asynchronous database | 250MB+ | Same-Origin |
Common Pitfalls & Tips
[!WARNING]
querySelectorAll()returns a staticNodeList, not a true JavaScript Array! Convert it usingArray.from(nodeList)to use methods like.map()or.filter().
[!TIP] Always disconnect observers (
observer.disconnect()) when components unmount to prevent memory leaks in single-page apps.