Menu

Posts tagged JavaScript

JS context managers

See how to adapt Python's context managers for use in JavaScript. Break free from clunky try...finally blocks with this one weird trick.

Making a theme selector

How to make a theme selector for your website, and why you might want to have more than one theme.

JS compare function

Exploring a small but mighty function that supercharges the JS Array sort method to rival Lodash's orderBy

Querying shadow DOM

Examples of how to query shadow DOM, and when you actually don't want to.

Flashlight: Making toys for the web

I made a toy flashlight for the web. It simulates darkening the web page and following the cursor. It looks somewhat convincingly like a flashlight. Enjoy!

JS Proxy and private properties

The default Proxy implementation doesn't work well with private properties, but we can fix this! I also explore other approaches to private data in JS.

Developing with web components

Thoughts on developing with web components from scratch; no UI libraries. This covers custom elements and very basic use of the <template> element. Shadow DOM is mentioned but not used.

Why I don't like useState

Why useState is so hard to use correctly, and what we can do about it.

Tagged unions in JavaScript

A disciplined approach to state management and domain modeling for JavaScript and TypeScript. Also known as algebraic data types / discriminated unions.

JavaScript iterators and more

A comparison and overview of generators, iterators, and iterables in JS.

React without JSX

A quick overview on using React without JSX or any build tools.

Broken promises

How to use promises effectively (written before async/await existed)

Compiler code generation

How to make code generation for a compiler.

Making a language

How to make a programming language from scratch in JS.

The leaning tower of Babel

An exploration of Babel's caveats.

JS gotchas with this and new

How JS's 'this' and 'new' work, and how to avoid issues with them.

Squiggle: a JS language

An introduction to Squiggle, a compile-to-JS programming language I made.