
Function Declarations vs. Function Expressions vs. Arrow Functions
Function declarations vs. function expressions vs. arrow functions in JavaScript, including hoisting, `this`, readability, and when each style fits best.
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 that I have worked with for many years, and have managed to write about quite a few times. There are three hundred collected together for you below.

Function declarations vs. function expressions vs. arrow functions in JavaScript, including hoisting, `this`, readability, and when each style fits best.

Rest and spread operators solve different problems in JavaScript. This beginner‑friendly guide shows the syntax, the difference, and common use cases.

Use JavaScript template literals for multi‑line strings, interpolation, cleaner formatting, practical string construction, and pitfalls around whitespace.

String.startsWith(), endsWith(), and includes() in JavaScriptUse startsWith(), endsWith(), and includes() in JavaScript for clearer string checks, case‑sensitive matching, position arguments, and readable intent.

window.resize Events in iOSUnderstand phantom window.resize events in iOS Safari, including dynamic browser UI, viewport changes, orientation, user interaction, and mitigation patterns.

for...in vs. for...of in JavaScriptCompare for...in and for...of in JavaScript, including keys versus values, arrays, plain objects, iterables, inherited properties, and intent cleanly.

JSON.parse() and JSON.stringify() Explained for Beginners`JSON.parse()` and `JSON.stringify()` explained clearly, including when to convert data, common mistakes, localStorage use, and why functions disappear.

Default parameters in JavaScript explored in more depth, including expression defaults, evaluation order, undefined, API design, and subtle edge cases.

Array.from() and Array.of() in JavaScript`Array.from()` and `Array.of()` in JavaScript explained with NodeLists, array‑like objects, generated arrays, and why `new Array()` can still catch people out.

Default parameters in JavaScript explained from the ES6 syntax through undefined handling, old workarounds, cleaner calls, everyday use, and function design.

A technical article explaining what arrow functions are in JavaScript, and providing code examples. It includes comparisons against non‑arrow functions.

arguments Object vs. Rest Parameters in JavaScriptThe `arguments` object vs. rest parameters in JavaScript, including readability, array behaviour, arrow function differences, and modern best practices.

Understand why HTML form values are always strings in JavaScript, plus safe conversion for numbers, booleans, checkboxes, radio buttons, and FormData.

Use object property shorthand and computed property names in JavaScript for cleaner literals, derived keys, method shorthand, and overwrite cautions.

null and undefined in JavaScriptCompare null and undefined in JavaScript, including assignment, missing values, typeof quirks, arithmetic behaviour, equality, and common bugs clearly.

An article which explains how to use modules in JavaScript, including exporting and importing named and default exports, and potential issues to watch out for.

Object.assign() in JavaScript: Merging and Shallow CopiesUse Object.assign() in JavaScript for merging and shallow copies, with target mutation, overwrite rules, nested‑object cautions, and newer alternatives.

Render lists in React with stable keys, avoiding index and random‑key bugs, preserving component state correctly through filtering, sorting, and reordering.