
Object Control in JavaScript: defineProperties()
Object.defineProperties() gives you fine‑grained control over JavaScript objects. This guide covers descriptors, defaults, and practical use cases.
Articles
When I started in web development (twenty‑three years ago), cross‑browser compatibility was a hot topic. Many days and hours were lost cursing Microsoft for interpreting the specs differently to other browsers. The work has changed rather than disappeared: these articles are about feature support, progressive enhancement, and debugging the awkward differences that remain without pretending every browser must behave identically.

defineProperties()Object.defineProperties() gives you fine‑grained control over JavaScript objects. This guide covers descriptors, defaults, and practical use cases.

call() Method in JavaScriptUncover the capabilities of JavaScript's `call()` for invoking functions with a custom context, a key technique for effective function and method management.

instanceofUncover the differences between JavaScript's `instanceof` and `typeof` for type checking, with practical examples and insights on when to use each operator.

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

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.

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

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

hasOwnProperty() MethodDiscover JavaScript's `hasOwnProperty()` for checking an object's own properties, an essential method for accurate and reliable object property iteration.

Function.prototype.bind()Explore JavaScript's `Function.prototype.bind()` method to master function contexts and argument handling, enhancing your code's flexibility and reliability.

defineProperty()Unlock the capabilities of JavaScript's `Object.defineProperty()` for precise property control on objects, enhancing security and data integrity in your code.

setTimeout() in JavaScriptAn exploration of JavaScript's `setTimeout` function. Understand its nuances in component lifecycles, and learn effective timing strategies using it.
Progressive enhancement in web development is often misunderstood: it allows us to take advantage of more modern browsers, without penalising the older ones.

Now used as almost trivial marketing buzz words, there really are significant differences between responsive and adaptive design and development techniques.

p Tags from Contentful List ItemsOne of the quirks of rendering Rich Text from Contentful is that list items come wrapped in paragraph <p> tags. Fortunately, this is a simple one to resolve.

Keep CSS focus styles accessible without showing outlines after every mouse click, using keyboard‑only patterns, :focus‑visible thinking, and UX trade‑offs.

Disable text selection with CSS user‑select, including browser prefixes, input caveats and a visual ::selection fallback for older browsers.

Conditional comments were once the standard way to target Internet Explorer. This guide shows how the non‑IE pattern works and where it catches people out.

The JavaScript event loop manages asynchronous tasks in a single‑threaded environment. I explore how it works with the call stack, task queue, and microtasks.