2017-11

Currying is not idiomatic in JavaScript

[2017-11-10] dev, javascript

In this blog post I explain why, in my opinion, currying is in conflict with some of JavaScript’s foundations.

ES proposal: import.meta – module metadata

[2017-11-05] dev, javascript, esnext, es proposal, jsmodules

The proposal “import.meta” by Domenic Denicola is currently at stage 3. This blog post explains how it works.

Tracing method calls via Proxies

[2017-11-01] dev, javascript, js proxies

In this blog post, I explain how you can trace method calls via ECMAScript Proxies. The techniques I show are relevant whenever you want to intercept and forward method calls via Proxies.

2017-09

Using ES modules natively in Node.js

[2017-09-12] dev, javascript, esnext, jsmodules, nodejs

Starting with version 8.5.0, Node.js supports ES modules natively, behind a command line option. Most of the credit for this new functionality goes to Bradley Farias.

This blog post explains the details.

2017-08

Easing the pain of building in JavaScript

[2017-08-26] dev, javascript, esnext, jstools

In principle, JavaScript is a very dynamic and interactive programming language. However, that has changed significantly in recent years. Now, modern web development requires extensive build and compilation steps. That is unfortunate for two reasons. First, it makes development less pleasant. Second, it makes web development harder to learn. This blog post covers ideas and tools for easing some of the pain of building.

Tips for typing import statements in JavaScript

[2017-08-23] dev, javascript, esnext, jsmodules, vscode

This blog post gives tips for typing import statements more quickly, including a helpful text snippet for Visual Studio Code.

Beyond typeof and instanceof: simplifying dynamic type checks

[2017-08-18] dev, javascript, esnext, es proposal, typedjs

This blog post describes a technique for making instanceof applicable to more values (on the right-hand side). Specifically, for primitive values.

ES2019: optional catch binding

[2017-08-13] dev, javascript, es2019, error handling

The proposal “Optional catch binding” by Michael Ficarra is at stage 4 and therefore part of ECMAScript 2019. This blog post explains how it works.

ES proposal: Promise.try()

[2017-08-09] dev, javascript, esnext, es proposal, async, promises

The proposal “Promise.try()” by Jordan Harband is currently at stage 1. This blog post explains how it works.

Passing data between Promise callbacks

[2017-08-08] dev, javascript, esnext, async, promises

In Promise-based code, there are usually many callbacks, each one having a separate scope for variables. What if you want to share data between those callbacks? This blog post describes techniques for doing so.