Skip to content

Code snippets

Code snippets

Copy-ready answers to everyday coding questions, each with a short explanation. Laravel, PHP, JavaScript, SQL, Bash and more.

9 snippets · Show all

JavaScript October 14, 2026 JavaScript dark mode toggle that remembers the user’s choice Uses the system preference on the first visit, then saves the user’s choice in localStorage. It sets a data-theme attribute you can style in CSS. const root = document.documentElement; const saved = localStorage.getItem('theme'); const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; JavaScript October 14, 2026 JavaScript remove duplicates from an array A Set keeps only unique values, so spreading it back into an array removes duplicates. For objects, dedupe by a key with a Map. const nums = [1, 2, 2, 3, 3, 3]; const unique = [...new Set(nums)]; console.log(unique); // [1, 2, 3] JavaScript October 14, 2026 JavaScript fetch with timeout using AbortSignal.timeout Cancels a request automatically if the server takes too long. It also checks response.ok, because fetch does not throw on HTTP errors like 404 or 500. async function getJson(url, ms = 5000) { const res = await fetch(url, { signal: AbortSignal.timeout(ms) }); if (!res.ok) throw new Error(`HTTP ${res.status}`); return res.json(); JavaScript October 14, 2026 JavaScript copy text to clipboard with the Clipboard API Copies text with the modern async Clipboard API. It only works on HTTPS (or localhost) and usually needs to run from a user action such as a click. async function copyText(text) { try { await navigator.clipboard.writeText(text); return true; JavaScript October 14, 2026 JavaScript debounce function to limit how often a function runs Delays a function until the user stops triggering it for a set time. Use it for search boxes, window resize and autosave so you don’t fire on every keystroke. function debounce(fn, delay = 300) { let timer; return (...args) => { clearTimeout(timer); JavaScript October 8, 2026 Union, intersection and difference of Sets with built-in Set methods ES2025 adds set-algebra methods to Set, so you no longer write spread-and-filter helpers. They return new Sets. Needs Node 22+, Chrome 122, Firefox 127 or Safar... const a = new Set([1, 2, 3]), b = new Set([3, 4]); console.log(a.union(b), a.intersection(b), a.difference(b), a.symmetricDifference(b)); console.log(new Set([3]).isSubsetOf(a)); // Set(4) { 1, 2, 3, 4 } Set(1) { 3 } Set(2) { 1, 2 } Set(3) { 1, 2, 4 } JavaScript October 8, 2026 Group array items by property with Object.groupBy and Map.groupBy Buckets an array by a callback’s return value, replacing the usual reduce boilerplate. Map.groupBy keeps non-string keys. The Object.groupBy result has a null p... const people = [ { name: "Ann", role: "dev" }, { name: "Bob", role: "ops" }, { name: "Cy", role: "dev" }, JavaScript October 8, 2026 Sort, reverse and update arrays without mutating: toSorted, toReversed, with These methods return a new array and leave the original untouched, which suits React state and other immutable code. Needs Node 20+, Chrome 110, Firefox 115 or... const nums = [3, 1, 2]; const sorted = nums.toSorted((a, b) => a - b); const reversed = nums.toReversed(); const replaced = nums.with(0, 99); JavaScript October 8, 2026 Deep clone objects in JavaScript with structuredClone() Makes a true deep copy and keeps Date, Set and Map. It avoids the JSON.parse(JSON.stringify()) hack, which turns Dates into strings and drops Sets. Needs Node 1... const orig = { user: { name: "Ada", tags: ["a"] }, when: new Date(0), ids: new Set([1, 2]) }; const copy = structuredClone(orig); copy.user.tags.push("b"); console.log(orig.user.tags, copy.user.tags);

Get new articles in your inbox

Practical tutorials and deep dives, about once a week. No spam, unsubscribe anytime.

Privacy policy

Add DEV Talk to your Home Screen

  1. 1 Tap the Share button in Safari's toolbar.
  2. 2 Scroll down and tap Add to Home Screen.
  3. 3 Tap Add. Open it from the Home Screen to read like an app and to turn on notifications with the bell.

We use cookies to improve your experience and analyze traffic. By continuing, you agree to our Privacy Policy.