---
title: "The healing power of JavaScript"
publication: "JavaScript Weekly"
issue: 533
published_at: "2021-04-09"
canonical_url: "https://javascriptweekly.com/issues/533"
---

Plus keeping things vanilla, a JS game dev environment, and how to read React errors. |        

# 533 — April 9, 2021 

[Unsubscribe](https://javascriptweekly.com/leave/*|UID|*)|[Read on the Web](https://javascriptweekly.com/issues/533)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/iimtv8rmptor0ll92hgu.jpg)](https://www.wired.com/story/healing-power-javascript-code-programming/)  

[The Healing Power of JavaScript](https://www.wired.com/story/healing-power-javascript-code-programming/) — There wasn’t a singular “big” bit of news this week, but why not something a little more whimsical? Craig Mod, a popular writer and photographer, has written a piece for WIRED about how, for Craig, _“code is therapy, an escape and a path to hope in a troubled world.”_ 

Craig Mod   

📖 [The ES2021 Edition “JavaScript for Impatient Programmers”](https://gist.github.com/rauschma/e9c00fddc17e73fab6ce6c22b2e78e17) — Dr. Axel has updated his popular [JavaScript for Impatient Programmers](https://exploringjs.com/impatient-js/) book to ES2021 standards and you can still read the (nearly) whole book [online.](https://exploringjs.com/impatient-js/toc.html) 

Dr. Axel Rauschmayer   [![\](https://copm.s3.amazonaws.com/f1c06492.png)](https://raygun.com/webinar/connecting-code-to-customer-a-deep-dive-into-customer-centric-monitoring?utm_medium=newsletter&utm_source=opsmatters&utm_campaign=customer-centric-monitoring-webinar&utm_content=webinar) 

[Connect Code to Customer in This Free Webinar Deep-Dive](https://raygun.com/webinar/connecting-code-to-customer-a-deep-dive-into-customer-centric-monitoring?utm_medium=newsletter&utm_source=opsmatters&utm_campaign=customer-centric-monitoring-webinar&utm_content=webinar) — Developers have become integral to the success of every business – because if your software sucks, your business sucks. In this live demo, we'll show you three successful strategies that put the customer at the center of your monitoring workflow. 

Raygun sponsor   

[Vanilla JavaScript Code Snippets](https://www.smashingmagazine.com/2021/04/vanilla-javascript-code-snippets/) — A roundup of a number of useful sources when you want to keep your JavaScript simple and light and as _vanilla_ as possible. Covers things like [1loc.dev](https://1loc.dev/), [Micro.js](http://microjs.com/) and [30 seconds of code](https://www.30secondsofcode.org/). 

Vitaly Friedman   

[Five Ways to Prevent Code Injection in JavaScript](https://snyk.io/blog/5-ways-to-prevent-code-injection-in-javascript-and-node-js/) — You never want malicious users to be able to send code over the wire that then gets run by your own program. Here are some ways to prevent this problem. 

Liran Tal     

Quick Bits 

- The Vue project has decided to [not support IE11 with Vue 3](https://github.com/vuejs/rfcs/blob/ie11/active-rfcs/0000-vue3-ie11-support.md) — instead, numerous features will be backported to Vue 2.
- Node saw a [swathe of security releases](https://nodejs.org/en/blog/vulnerability/april-2021-security-releases/) this week to fix a few high severity issues, mostly in the OpenSSL dependency.
- The Chrome DevTools team have continued to write about how they're migrating the tools [over to using TypeScript.](https://developer.chrome.com/blog/migrating-to-typescript/) They've previously written similarly [about Puppeteer too](https://developer.chrome.com/blog/puppeteer-typescript/).
- [React Summit](https://remote.reactsummit.com) returns (remotely) next week. We've got some tickets to [give away on Twitter.](https://twitter.com/JavaScriptDaily/status/1380467857360818182) 

Releases 

[Cucumber.js 7.1.0](https://github.com/cucumber/cucumber-js) — Write tests as stories.
 [Fabric.js 4.4](https://github.com/fabricjs/fabric.js) — Work with canvases from JS.
 [NSFW.js 2.4](https://github.com/infinitered/nsfwjs) — Client-side NSFW image detection.
 [Node CSV 5.5](https://github.com/adaltas/node-csv) — Full featured CSV parser.
 [Marko 5.7](https://markojs.com/) — eBay's UI library.  

💻 Jobs  

[Front-End Senior Software Engineer (Remote)](https://grnh.se/989c83dc2us) — Help power a platform meaningfully changing how journalists, PR pros, and marketers around the world work. 

Muck Rack   

[Senior Software Engineering Consultant - [100% Remote\]](https://testdouble.recruiterbox.com/jobs/fk0uj24/) — Co-founded by Justin Searls, Test Double is an engineering consultancy on a mission to improve the way the world builds software. Work on challenging projects with a collaborative, passionate team. 100% employee owned, contract and full-time roles available. 

TestDouble   

[Find Software Engineering Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-javascriptweekly%29&utm_content=find-your-next-job) — Take 5 minutes to build your free profile & start getting interviews for your next job. Companies on Hired are actively hiring right now. 

Hired  

📖 Articles, Opinions & Tutorials  

[Replacing `let` with `const` (Even When It Feels Impossible)](https://t.co/1SdwWV9XcG?amp=1) — I’m not a big fan of shoehorning `const` in everywhere you can, but many developers find value in it and Charles argues that it has numerous benefits. 

Charles Stover   

[How to Read React Errors](https://daveceddia.com/fix-react-errors/) — A practical tutorial on how to make sense out of some of the more obscure React error messages. 

Dave Ceddia   

[Breakpoints and `console.log` Is the Past, Time Travel Is the Future](https://wallabyjs.com/?utm_source=cooperpress&utm_campaign=javascriptweekly&utm_content=javascript) — 15x faster JavaScript debugging than with breakpoints and console.log. 

Wallaby.js sponsor   

[How to Actually Test Component Driven UIs](https://storybook.js.org/blog/how-to-actually-test-uis/) — The folks at Storybook spoke with ten engineering teams to see which UI testing methods work for them. Unsurprisingly, Storybook came up, but also tools like Axe and Cypress. 

Varun Vachhar (Storybook)   

▶[How to Create a Globe and Add Cities using Three.js](https://tympanus.net/codrops/2021/04/05/how-to-create-a-globe-and-add-cities-using-three-js/) — A recorded coding session. _(86-minutes.)_ 

Yuriy Artyukh   

[19 JavaScript 'Nuggets'](https://delicious-insights.com/en/posts/js-nuggets/) — If you’re up for a quick list of JavaScript tips, start here. This links to nineteen posts (on the same blog) covering things like sorting, `const`, `for`/`of`, and working with strings. 

Delicious Insights   

[How to Password Protect a Site with Cloudflare Workers](https://phiilu.com/password-protect-your-vercel-site-with-cloudflare-workers) — A demonstration of using Cloudflare Workers to add Basic HTTP authentication to sites even if they are hosted on a service like Vercel or Netlify. 

Florian Kapfenberger   

▶[Vue Explained for React Developers in 6 Minutes](https://www.youtube.com/watch?v=sUH7PDUswio) 
Coding with Justin   

[Three Ways to Merge Arrays in JavaScript](https://dmitripavlutin.com/javascript-merge-arrays/) 
Dmitri Pavlutin   

[Server-Side Rendering and the Journey to The Center of Nuxt.js](https://medium.com/dailyjs/server-side-rendering-and-the-journey-to-the-center-of-nuxt-js-55046929200b?source=friends_link&sk=0b5397f0df0afda04b3b8be7b09a4d49) 
Michael Gallagher     

🛠 Code & Tools   

supported by [![Okta\](https://res.cloudinary.com/cpress/image/upload/v1602154330/de7dtktheistsfpqdem4.png)](https://developer.okta.com/?utm_campaign=newsletter_cooperpress_all_multiple_inc_dev_sponsored-section_null&utm_source=cooperpress&utm_medium=cpc)    

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/lledhkv2xubafs1kiawo.jpg)](https://replit.com/kaboom)   

[Kaboom.js: A Fun JS Game Programming Library and Environment](https://replit.com/kaboom) — Lets you edit your code, sprites, and sounds in one place and includes helpers to assist in building certain types of games faster. [Project homepage](https://kaboomjs.com/). 

replit   

[React Hook Form 7.0](https://react-hook-form.com/) — After two years of work, the latest version of this mature form library has dropped. It features strict typing, reduced package size and improved performance. Already a user? There's a [v6 to v7 migration guide](https://react-hook-form.com/migrate-v6-to-v7/) aimed specifically at you. 

React Hook Form   

[[New\] AI Security Scanning for WebStorm - Try the Free Security Plugin](https://plugins.jetbrains.com/plugin/10972-snyk-vulnerability-scanner) — Avoid the refactoring fire drill. Catch (and fix) security issues as you code. Try Snyk’s free WebStorm security plugin. 

Snyk sponsor   

[CSS-Select 4.0: A CSS Selector Compiler and Engine](https://github.com/fb55/css-select) — Turns CSS selectors into functions that tests if elements match them. 

Felix Böhm   

[moovie.js: A Movie-Focused HTML5 Media Player](https://github.com/BMSVieira/moovie.js) — [Try it here](https://bmsvieira.github.io/moovie.js/). No dependencies, responsive, customizable, keyboard shortcuts, and includes support for .vtt or .srt caption/subtitle files. 

Bruno Vieira   

[Cancelable Async Flows (CAF)](https://github.com/getify/CAF) — Gives you `async`/`await` style coding but using generators under the hood for more control over cancellation. Based on `AbortController`/`AbortSignal`, Kyle says his library can handle the ‘dirty work’ for you. 

Kyle Simpson   

[Book a Demo. Ship Fast. Rest Easy. LaunchDarkly](https://learn.launchdarkly.com/demo/?utm_source=cooperpress&utm_medium=display&utm_campaign=21q1-cooperpress) 

LaunchDarkly sponsor   

[Flicking 3: A Flexible Carousel Component](https://naver.github.io/egjs-flicking/) — There are wrappers for Angular, React, Vue and Preact users too. 

NAVER Corp     

🕰 **ICYMI** _(Some older stuff that's worth checking out...)_   

[The Future of Web Software Is HTML-Over-WebSockets](https://alistapart.com/article/the-future-of-web-software-is-html-over-websockets/) 
Matt E. Patterson   

[How to Create React Components with TypeScript](https://felixgerschau.com/react-typescript-components/) 
Felix Gerschau   

[A Super Flexible CSS Carousel, Enhanced With JavaScript Navigation](https://css-tricks.com/a-super-flexible-css-carousel-enhanced-with-javascript-navigation/) 
Maks Akymenko   

[The Complete Guide to Immutability in TypeScript](https://levelup.gitconnected.com/the-complete-guide-to-immutability-in-typescript-99154f859fdb) 
Gregory Pabian   

[How to Use `reduce` in JavaScript](https://zellwk.com/blog/reduce/) — Keeps it nice and simple. 
Zell Liew           

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/peterc) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
