
Angular Change Detection: How It Works and How to Optimise It
Angular change detection explained through zone triggers, OnPush, signals, template cost, manual checks, and practical rendering optimisation at scale.
Articles
JavaScript is probably one of the most‑used programming languages in the world, and a cornerstone of front‑end (and more general) web development. It enables the development of interactivity and features that HTML and CSS alone simply cannot, and includes more advanced concepts like closures, callbacks, and asynchronous programming.
Below you will find a subset of articles from my blog specifically about JavaScript. This is an area I have worked with for many years, and it has been a regular subject in my writing. There are three hundred twenty‑two articles collected together for you below.

Angular change detection explained through zone triggers, OnPush, signals, template cost, manual checks, and practical rendering optimisation at scale.

Why view source stopped being enough for modern web checks, and how rendered HTML, hydration, metadata, schema, crawl paths, and client output changed audits.

Validate parentheses input in TypeScript with a stack, checking bracket order, matching pairs, real parser‑style use cases, and alternative approaches.

.then() in Modern JavaScript.then() still matters in modern JavaScript. This guide explains promise chaining, return values, and why Promise.prototype.then() remains useful.

Understanding `stopPropagation` and `preventDefault` is key to handling events in JavaScript. Here, I explore their differences and when to use each.

An exploration of solutions to the 'Letter Combinations of Phone Number' problem using front‑end and TypeScript: recursion, backtracking, and iteration.

vh and vwCreate custom viewport units with CSS variables and JavaScript to avoid mobile 100vh bugs caused by browser chrome, keyboards, and visible height changes.

Add seeded randomisation to an SSR Gatsby project, keeping content order deterministic across builds whilst still rotating destination‑style content.

Convert Roman numerals to integers in JavaScript, covering subtractive notation, invalid input caveats, and a clear TypeScript implementation.

Convert integers to Roman numerals in JavaScript, covering symbol rules, greedy matching, edge cases, and a clear TypeScript implementation.

Automate copyright year updates across JavaScript, React, Angular, Vue, jQuery, PHP, and WordPress so footers do not go stale each January across stacks.

setInterval()A discussion about using JavaScript's setInterval for repetitive tasks. Manage intervals effectively and understand best practices for time‑bound executions.


Solve regular expression matching with recursive and dynamic‑programming context, covering dot and star behaviour, edge cases and TypeScript.

Solve Container With Most Water in TypeScript using the two‑pointer pattern, with pointer movement, complexity, edge cases, and testable logic explained.

A look back at JavaScript build tools before framework CLIs, covering Grunt, Gulp, Browserify, webpack, Babel, npm scripts, and everyday trade‑offs.

prototype.apply() in JavaScriptUnderstand Function.prototype.apply() in JavaScript, including this binding, array‑like arguments, call() differences, dynamic invocation, and modern use cases.

Explore the 'Longest Palindromic Substring' problem: its relevance in web development and four JavaScript (ES6 & TypeScript) solutions for efficiency.