
Comparing Arrays in JavaScript
Comparing arrays in JavaScript is trickier than it first looks. This guide covers reference equality, value comparison, and practical alternatives.
Articles from more than two decades of building, rebuilding, debugging, and leading web projects.

Comparing arrays in JavaScript is trickier than it first looks. This guide covers reference equality, value comparison, and practical alternatives.

Write safer JavaScript for older browsers by checking support, avoiding fragile assumptions, containing failures, and keeping core interactions usable.

IIFEs were a common JavaScript pattern before modern modules took over. This guide explains what they do, why they existed, and when they still appear.

call, apply, and bind in JavaScriptUnderstand call, apply, and bind in JavaScript, including this context, borrowed methods, callbacks, partial application, and production review caveats.

Append and prepend array items in JavaScript with push(), unshift(), spread syntax, mutation trade‑offs, return values, and cleaner update patterns.

The JavaScript prototype chain underpins inheritance, enabling object property sharing. Here, I explore its workings, property searching, and quirks.

A practical overview of JavaScript build tools and module formats, covering globals, CommonJS, AMD, Browserify, bundling, and project trade‑offs.

Type coercion in JavaScript explained clearly, including implicit vs. explicit conversion, equality surprises, string concatenation, and number casting.

Use CommonJS modules in JavaScript with require() and module.exports, covering Node.js origins, browser bundling, limitations, and ES module comparison.

Thinking of moving from permanent employment to freelancing? Follow these 5 tips for a smooth transition and establish yourself as a successful freelancer.

Find the best web developer near you in Brighton, Sussex, or London. This guide covers what to look for, from technical skills to communication and aftercare.

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.

Keep jQuery plugin usage maintainable with clear wrappers, option defaults, event names, lifecycle checks, CSS boundaries, ownership, and update notes.

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!

Decide when a jQuery plugin is worth using, and when a small custom script is safer, clearer, easier to maintain, and less likely to leak assumptions.