
Controlled vs. Uncontrolled Components in React
Controlled vs. uncontrolled components in React explained with form examples, refs, validation trade‑offs, and why each approach suits different jobs.
Practical notes and articles on React, Next.js and web platform work.

Controlled vs. uncontrolled components in React explained with form examples, refs, validation trade‑offs, and why each approach suits different jobs.

this Changes in JavaScript Event Handlers and MethodsUnderstand why this changes in JavaScript methods and event handlers, including call sites, arrow functions, bind(), event objects, and context bugs.
forEach and for...ofWith the introduction of the new JavaScript standard ES6, there are some new and interesting ways to loop through data, which I discuss here today.

Asynchronous Module Definition explained, including AMD module loading, define(), dependency handling, CommonJS, ES modules, and modern relevance.

Callbacks are a core part of JavaScript, even if promises get more attention now. This guide explains how they work and where they still show up.

Primitive vs. reference types in JavaScript explained clearly, including copying behaviour, mutation, equality, and why arrays and objects surprise beginners.

Lifting state up in React explained clearly, including shared state, single sources of truth, child callbacks, and when moving state higher helps.

localhostThere are many reasons that you might want to detect whether your code is running on localhost. Aside from using environment variables, there's also JavaScript!

Five habits of a good web developer, covering clean code, performance, testing, collaboration, curiosity, standards, and communication beyond code.

Create script elements dynamically with JavaScript, setting src, choosing head or body placement, loading external scripts, and understanding execution timing.

How to read JavaScript errors and stack traces in the browser, including common error types, line numbers, call stacks, and a practical debugging workflow.

Pass by value vs. reference in JavaScript explained clearly, including why objects seem shared, how reassignment differs from mutation and common beginner bugs.
Pick a random array element in JavaScript with Math.random(), safe index calculation, reusable helpers, and notes on real interface randomisation.

Hiring a web developer in Brighton or London ensures better communication, tailored solutions for your market, prompt support, and boosts the local economy.
A common web development task: get the number of years between two dates. I discuss how to do this with PHP in the back‑end, or front‑end with JavaScript.

data‑* Attributes and dataset in JavaScriptUse data attributes and dataset in JavaScript to connect HTML and behaviour cleanly, handle camelCase mapping, event delegation, and string values.
closest() in Vanilla JavaScript and jQueryUse closest() for DOM traversal in jQuery and vanilla JavaScript, replacing manual parent walking in menus, click handlers, and interactive UI cleanly.

classList in JavaScript: add(), remove(), toggle(), and contains()Use classList in JavaScript for add(), remove(), toggle(), and contains(), with cleaner DOM state updates, validation examples, and className cautions.

!important in CSSUnderstand why !important in CSS creates cascade, specificity, consistency, and maintenance problems, plus when an override may still be defensible.
Handle click events in JavaScript with onclick and addEventListener, including vanilla alternatives to jQuery, event targets, and common interaction patterns.

DOMContentLoaded vs. load in JavaScriptCompare DOMContentLoaded and load in JavaScript, including parsing, asset loading, script timing, selector failures, and when each event is useful.