#445 — July 12, 2019

Read on the Web

JavaScript Weekly

QuickJS: A New, Small, Embeddable JavaScript EngineFabrice Bellard, the genius behind FFMPEG and JSLinux, is back with another project.. a complete JS engine (supporting the ES2019 spec!) built in a relatively tiny amount of C. Will this replace V8? No, it’s a small and relatively slow implementation, but perfect for embedded use or even for compiling down to WebAssembly as demonstrated in this live demo.

Fabrice Bellard

Improve Your JavaScript Knowledge By Reading Source Code — 👍 Reading other people’s source code is a great way to both learn a language and increase your confidence that your own code isn’t that much different. Indeed, if I get stuck with a language feature, I’ll often look at how other developers use it to work my way out of the problem.

Carl Mungazi

Instantly Know When JavaScript Errors Occur and How to Fix Them — With JavaScript error tracking from Rollbar you get exception and crash reports in real-time. Track and debug bugs in record time. Start monitoring and fixing errors in minutes - Try Rollbar for free.

Rollbar sponsor

How Do JavaScript’s Global Variables Really Work? — Great to see Dr. Axel blogging again. Here he digs into a variety of concepts around global variables and the global object (which is commonly considered ‘a mistake’).

Dr. Axel Rauschmayer

Hermes: A New JS Engine Optimized for React Native — You don’t get a new JavaScript engine for years, and then this week we get two! Hermes is a new engine released by Facebook that aims to dramatically speed up React Native apps on Android by introducing optimized build-time bytecode generation. Interested in the tech? Nadav Rotem shares some analysis.


Why Every Vue Developer Should Be Excited by Quasar 1.0Quasar is a framework built on top of Vue.js, webpack, and Node for building a wide variety of things like SSR apps, SPAs, and even Electron apps. 1.0 came out just last week. GitHub repo.

Razvan Stoenescu

▶  Blazor: A Framework for Browser-Based .NET Apps — It’s been fun watching the development of Blazor, a framework from the ASP.NET team that brings .NET into the browser via WebAssembly and can interoperate with JavaScript. It’s worth being aware of this work even if you prefer JavaScript.

Steve Sanderson

Quick bytes:

💻 Jobs

Software Engineer Frontend (f/m/d) - Germany/Hamburg — We are looking for an experienced Software Engineer Frontend (React) (f/m/d) to join our international team.

collect Artificial Intelligence GmbH

Front-End Engineer - Jobox (Palo Alto, CA) — We're on a mission to shape the future of on-demand work. Join our team as we create a better future for our community of service providers.


Land a New Dev Job on Vettery — Vettery specializes in tech roles and is completely free for job seekers.


📘 Tutorials, Opinions, and Videos

Modern Script Loading — You want to serve modern code to modern browsers, legacy code to the older browsers.. but how?

Jason Miller

▶  'I Didn't Know That!' – Random Facts About JavaScript — A 10 minute lightning talk that’s a veritable grab-bag of JavaScript tips. You could probably turn some of these into blog posts of their own!

Stefan Judis

Build Your JavaScript Skills with Manning — Want to make your JS skills reach new heights? We're offering an exclusive 40% off your order at manning.com. Just use the code jsweekly40 at checkout.

Manning Publications sponsor

How To Build A Sketch Plugin with JavaScript — Sketch is a popular (but commercial) vector graphics editor for macOS and you can dynamically extend it with our favorite language.

Smashing Magazine

Implementing an Efficient LRU Cache in JavaScript — Using typed arrays to design a low-cost pointer system for fixed-capacity data structures.

Guillaume Plique

An Overview of What's New in Node 12 — The ‘current’ Node 12.x branch is almost three months old but Adam Polak has brought together several features of note in one article with examples.

Adam Polak

How To Build a Minesweeper Game with JavaScript — I love fun tutorials like this. It’s not perfect JavaScript, it uses jQuery, and you might pick other holes in it, but you’ll learn something, have fun, and it works!


Weak References and Finalizers — WeakRefs can be a little tricky to get your head around (though don’t stress, you’re unlikely to need to use them).. but if you want to try.. 😄

Sathya Gunasekaran and Mathias Bynens

The Many Ways to Include CSS in JavaScript Apps — A look at the ways in which CSS can be handled within a JavaScript application — something of a controversial topic in the land of frontend development. I like option 1.

Dominic Magnifico

Webinar: Node.js Best Practices - Error Handling

NodeSource sponsor

Using TypeScript to Make Invalid States Irrepresentable — An interesting experiment based upon some ideas from Haskell.

Javier Casas

▶  A Deep Dive into React-Redux — A must watch if you use Redux with React and want to keep up with what’s new. Also make sure you’re getting our React newsletter for more like this.

Mark Erikson

🔧 Code and Tools

abcjs: Render Textual Music Notation into Visual Sheet MusicABC is a plain-text form of musical notation and this library renders it into more typical graphical notation.

Paul Rosen and Gregory Dyke

26 VS Code Tools for JavaScript Developers — VS Code user? Worried you might be missing yet another useful extension to make your JS development life better? Binge on this list.


Next.js 9 Released: The Popular Server-Side React Framework — 9.0 introduces a lot of features like zero-config TypeScript support and ‘API routes’, a new way to build back-end APIs.


Get Live Runtime Feedback in Your Editor While Coding JS/TS — Quokka.js is available for VS Code, IntelliJ, Atom, and now Sublime Text. Community edition is free to use forever.

Wallaby.js sponsor

Marked: A Fast Markdown Parser and Compiler — Works in the browser or server-side. Demo here.

Christopher Jeffrey

jest-dom: Custom Jest Matchers to Test the State of the DOM — So you want to use jest to write tests that assert various things about the state of a DOM..

Testing Library

HumanizeDuration.js: Turn Milliseconds into Natural Language — So 97320000 becomes ‘1 day, 3 hours, 2 minutes’

Evan Hahn

Geodesy Functions Implemented in JavaScriptGeodesy is the science of measuring the earth, its shape, distances, etc. If you have a need to work with such concepts, these examples will be useful.

Chris Veness

Player.js: Work with Embedded Vimeo Players from JS — Note that this is only for Vimeo playback.


React Native 0.60 Released — If you target Android, take note of the breaking changes.

Ryan Turner

P.S. Did you know we're on Twitter as well? Follow us @JavaScriptDaily