Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Advanced Date Handling in JavaScript: Time Zones, UTC and Formatting with Intl
We see that Date holds a single moment, then cover UTC and ISO 8601 rules, Intl.DateTimeFormat options, "3 days ago" with Intl.RelativeTimeFormat, the daylight saving trap and a first look at Temporal.
JavaScript Modules in the Browser: import, export, Dynamic import() and Import Maps
We write a first module with type="module", see why file:// fails, and learn named and default exports, live bindings, dynamic import(), import maps and ES2025's JSON modules with import attributes.
JavaScript URL, URLSearchParams and the History API: Managing the Address Without a Reload
We take addresses apart with URL and URLSearchParams, look at the hash, compare pushState and replaceState, learn when popstate fires, and write a small framework-free SPA router.
JavaScript Web Storage and Cookies: localStorage, sessionStorage and document.cookie
We cover localStorage vs sessionStorage, storing objects with JSON, the cross-tab storage event, quota and security limits, cookie attributes through document.cookie, and why HttpOnly cookies stay invisible.
Advanced JavaScript Forms: FormData, the Constraint Validation API and Fetch
We collect values with form.elements and FormData, write our own rules with validity and setCustomValidity, catch the invalid event, and send the form with fetch without reloading the page.
Advanced JavaScript Events: Bubbling, Capturing, Event Delegation and CustomEvent
We walk through the capturing, target and bubbling phases, stopPropagation, event delegation with a single listener, the once/passive/signal options, CustomEvent and pointer events, with runnable examples.
Advanced DOM in JavaScript: Navigation, closest, dataset, template and Batched Updates
We navigate the DOM with parent, children, siblings and closest, use dataset, insertAdjacentHTML, DocumentFragment, template, cloneNode and getBoundingClientRect, then meet reflow and batch our updates.
JavaScript Fetch API: GET, POST, response.ok, Timeouts and an Intro to CORS
We fetch and send data with the Fetch API and see why a 404 skips catch, how response.ok helps, POST/PUT/DELETE, timeouts with AbortSignal.timeout, CORS, and showing loading and error states.
JavaScript async/await: Readable Async Code, Error Handling and Waiting in Parallel
We see why async functions always return promises, how await waits without freezing the page, catching errors with try/catch, sequential versus parallel waiting, the await-in-a-loop trap and top-level await.
JavaScript Promises: Three States, the then/catch/finally Chain and Error Propagation
We build the three promise states with a restaurant buzzer analogy and work through new Promise, then/catch/finally, chaining, error propagation, Promise.all and race, and wrapping callbacks.
Intro to Asynchronous JavaScript: The Call Stack, the Event Loop and Callbacks
We see how single-threaded JavaScript handles waiting without freezing the page through the call stack, Web APIs, the callback queue and the event loop, and unpack setTimeout(fn, 0) and callback hell.
JavaScript Classes: Constructor, Getters/Setters, Static and Private Fields
We build class syntax with a cookie-cutter analogy and work through constructors, getters/setters, static members, # private fields, extends and super, then see that a class is really prototypes underneath.