#454 — September 13, 2019

Read on the Web

JavaScript Weekly

V8's Work on a Lighter V8V8 Lite has been a project aimed at reducing V8’s memory usage. Initially it was going to be a separate mode of V8 but many improvements have been able to come over to regular V8 too. Here’s a look at some of the key optimizations and the actual benefits to real workloads.

Mythri Alle, Dan Elphick, and Ross McIlroy (V8)

Moving Your JavaScript Development to the Terminal on Windows — If you’ve recently taken a look at Windows after becoming comfortable with macOS or Linux, this is for you. It’s a very detailed look at creating a powerful and elegant terminal-based development experience on Windows 10 using WSL and more.

Burke Holland

All-In-One Visual Testing and Review Platform — Replace time-consuming manual QA to catch visual UI bugs automatically. With Percy, you can test your UI across browsers and responsive widths on every pull request for continuous visual coverage.

Percy sponsor

Metronomes in JavaScript — An interesting experiment in comparing the efficacy of async functions, Web Workers, and using the Web Audio API’s clock for scheduling things precisely.

Monica Dinculescu

Lists of New ECMAScript Features by Version — This is pretty neat. Short and sweet lists of new ES features (with basic examples) that were introduced in ES2015 (a.k.a. ES6), ES2016, ES2017 and so on.

Dietmar Aumann

Immer 4.0: A Way to Work with Immutable State in JS — A popular package for working with immutable state in a convenient way. You apply changes to a draft state object and the mutations are applied to a state resulting in a new one.


💻 Jobs

Full Stack Engineer — Expensify seeks a self-driven individual passionate about making code effective, with an understanding of algorithms and design patterns.


Find a JavaScript job through Vettery — Make a free profile, name your salary, and connect with hiring managers from top employers.


📘 Articles & Tutorials

Let's Generate a Million Digits of Pi in 9 Lines of JavaScriptBigInt support makes this possible.

Andrew Jennings

A Re-Introduction to Destructuring AssignmentDestructuring assignment, introduced in ES6, provides an interesting way to dig into arrays and other objects to withdraw values more directly.

Laurie Barth

A Much Faster Way to Debug Code Than with Breakpoints or console.log — Wallaby catches errors in your tests and code and displays them right in your editor as you type, making your development feedback loop more productive.

Wallaby.js sponsor

Using void in JavaScript and TypeScriptvoid means rather different things in JS and TypeScript and does some things I hadn’t expected too.

Stefan Baumgartner

The 5 Big Features of TypeScript 3.7 and How to Use Them — It’s due in early November.

Tim Perry

▶  A 6 Hour React Native 'Crash Course' for Beginners — It’s slow going at first, but that’s because it’s truly aimed at beginners. It’s amazing how much is included here, though, and it’s well recorded too.

Maximilian Schwarzmüller

It’s Not Wrong That "🤦🏼‍♂️".length == 7 — The underlying ‘length’ of an emoji character is a complicated thing.. not just in JavaScript but in other languages too.

Henri Sivonen

X3D: Declarative 3D for the Modern Web — A look at X3D and how it offers a simple declarative approach for including 3D visualizations into web pages.

Adrian Sureshkumar

How Taiko Compares to Other Browser Automation Tools

ThoughtWorks - Taiko sponsor

Angular Dependency Injection Tips

Armen Vardanyan

▶  11 Talks from JSFoo VueDay 2019 — Talks from a Vue conference that took place in India two weeks ago.


🔧 Code & Tools

nanoSQL 2: A Universal 'Database Layer' for Client, Server and Mobile — Basically an abstraction for any JavaScript developers who want a database in their app. It can use numerous actual databases behind the scenes, including localStorage, IndexedDB, RocksDB, Redis, DynamoDB, ScyllaDB and SQLite. It claims to be like “Lego™ for databases”.

Scott Lott

React Suite 4.0: A Suite of 'Sensible' UI Components — A set of components that’s been under active development for a couple of years now. Supports React 16+, uses TypeScript, and they work on all major browsers. Components include things like buttons, modals, drawers, navigation bars, form input fields, tables, calendars, and more. GitHub repo.


Spacekit: A Library for Creating 3D Visualizations of Space — Here’s an example.

Ian Webster

Headroom.js: Hides Your Page Header Until Needed — A pure JS widget for hiding elements until needed (for example, show your page header when scrolling up).

Nick Williams

Automated Code Reviews for JavaScript — Set standards on coverage, duplication, complexity, and style issues and see real-time feedback in your Git workflow.

Codacy sponsor

Storytime: Tell Stories About Pieces of Code — This is hard to explain without a demo, so check out this explain demonstrating how React Fiber works.


Emoji Button: A Vanilla JavaScript Emoji Picker — Turns a button element into an emoji picker (similar to that some operating systems provide).

Joe Attardi

Filesize.js: A Library to Create Human Readable File Size Strings — For example: filesize(265318) returns 259.1 KB.

Jason Mulligan

⚡️ Quick Releases

🐦 An interesting Twitter thread...

Kyle Simpson, the author of YDKJS, has been thinking about some pain points when using asynchronous functions, particularly in relation to being able to cancel their execution when circumstances change. The whole thread is an interesting read, complete with people making suggestions of their workarounds.

We'd be pretty keen to link to any articles or opinion pieces covering this topic if you have any spare time this weekend ;-)