JavaScript DOM and Browser API Cheat Sheet

DOM selection, manipulation, browser events, storage, URL APIs, clipboard, observers, and forms.

View
StandardDetailedCompact
Export
Copy the compact sheet, download it, or print it.
Download
`D` dense toggle · `C` copy all

DOM Selection

Find and inspect elements in the document.

querySelector

javascriptANYjavascriptdomselection
javascript
const form = document.querySelector("form.login");

querySelectorAll

javascriptANYjavascriptdomselection
javascript
const buttons = document.querySelectorAll("[data-action]");

getElementById

javascriptANYjavascriptdomselection
javascript
const app = document.getElementById("app");

Element.closest

javascriptANYjavascriptdomselection
javascript
const card = event.target.closest(".card");

classList add/remove/toggle

javascriptANYjavascriptdomclasses
javascript
el.classList.add("is-open");
el.classList.remove("hidden");
el.classList.toggle("active");

DOM Manipulation

Create, append, remove, and replace DOM nodes.

Create element

javascriptANYjavascriptdommanipulation
javascript
const li = document.createElement("li");
li.textContent = "New item";

append / appendChild

javascriptANYjavascriptdommanipulation
javascript
list.append(li);
// or list.appendChild(li);

insertAdjacentHTML

javascriptANYjavascriptdomhtml
javascript
container.insertAdjacentHTML("beforeend", "<p>Hello</p>");

Remove node

javascriptANYjavascriptdommanipulation
javascript
node.remove();

replaceChildren

javascriptANYjavascriptdommanipulation
javascript
list.replaceChildren(...newItems);

textContent vs innerHTML

javascriptANYjavascriptdomhtmlsecurity
javascript
el.textContent = "<safe text>";
el.innerHTML = "<strong>Unsafe unless trusted</strong>";

dataset API

javascriptANYjavascriptdomdata-attributes
javascript
const id = card.dataset.id;

Events

Register listeners, delegate events, stop propagation, and dispatch custom events.

addEventListener

javascriptANYjavascripteventsdom
javascript
button.addEventListener("click", handleClick);

Listener options

javascriptANYjavascripteventsdom
javascript
window.addEventListener("scroll", onScroll, { passive: true });

removeEventListener

javascriptANYjavascripteventsdom
javascript
button.removeEventListener("click", handleClick);

Event delegation

javascriptANYjavascripteventsdelegation
javascript
list.addEventListener("click", (event) => {
  const item = event.target.closest("[data-id]");
  if (!item) return;
  console.log(item.dataset.id);
});

stopPropagation / preventDefault

javascriptANYjavascripteventsdom
javascript
link.addEventListener("click", (event) => {
  event.preventDefault();
  event.stopPropagation();
});

Dispatch custom event

javascriptANYjavascripteventscustom-events
javascript
el.dispatchEvent(new CustomEvent("cart:add", { detail: { sku: "ABC" } }));

Abort listener with signal

javascriptANYjavascripteventsabort
javascript
const controller = new AbortController();
window.addEventListener("resize", onResize, { signal: controller.signal });
controller.abort();

Browser APIs

Storage, URL APIs, clipboard, observers, and history.

localStorage set/get

javascriptANYjavascriptbrowserstorage
javascript
localStorage.setItem("theme", "dark");
const theme = localStorage.getItem("theme");

sessionStorage

javascriptANYjavascriptbrowserstorage
javascript
sessionStorage.setItem("draft", JSON.stringify(draft));

URLSearchParams

javascriptANYjavascriptbrowserurl
javascript
const params = new URLSearchParams(location.search);
const q = params.get("q");

history.pushState

javascriptANYjavascriptbrowserhistory
javascript
history.pushState({ tab: "profile" }, "", "?tab=profile");

Clipboard writeText

javascriptANYjavascriptbrowserclipboard
javascript
await navigator.clipboard.writeText(code);

IntersectionObserver

javascriptANYjavascriptbrowserobserver
javascript
const observer = new IntersectionObserver((entries) => {
  entries.forEach((entry) => console.log(entry.isIntersecting));
});
observer.observe(target);

ResizeObserver

javascriptANYjavascriptbrowserobserver
javascript
const ro = new ResizeObserver((entries) => {
  console.log(entries[0].contentRect.width);
});
ro.observe(element);

matchMedia

javascriptANYjavascriptbrowsermedia
javascript
const darkMode = window.matchMedia("(prefers-color-scheme: dark)");

Forms and Validation

Read form values, validate, and manage form submit flows.

Read FormData

javascriptANYjavascriptformsbrowser
javascript
const formData = new FormData(form);
const email = formData.get("email");

Handle form submit

javascriptANYjavascriptformsevents
javascript
form.addEventListener("submit", async (event) => {
  event.preventDefault();
  const formData = new FormData(form);
  await save(formData);
});

checkValidity/reportValidity

javascriptANYjavascriptformsvalidation
javascript
if (!form.checkValidity()) {
  form.reportValidity();
}

Read valueAsNumber

javascriptANYjavascriptformsvalidation
javascript
const qty = input.valueAsNumber;

Read selected file

javascriptANYjavascriptformsfiles
javascript
const file = fileInput.files?.[0];