---
title: "Optional chaining makes it into ES2020"
publication: "JavaScript Weekly"
issue: 466
published_at: "2019-12-06"
canonical_url: "https://javascriptweekly.com/issues/466"
---

Plus it's JavaScript's birthday this week, what's coming to Node in 2020, and building Tetris in JavaScript.       

#466 — December 6, 2019 

[Read on the Web](https://javascriptweekly.com/issues/466)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/ql2mo7ujl6kcryuv5ttb.jpg)](https://t.co/k09LFYrasc)   

[JavaScript, ES6, ES7, ES10.. Where Are We?](https://t.co/k09LFYrasc) — A look at the current features within JavaScript, what got rejected, and what native support for ‘modern’ JavaScript features is like. It’s a bit of a mish-mash, but covers a lot of proposals. 

Yann Stepienik   

[Optional Chaining Has Reached Stage 4 at TC39](https://twitter.com/robpalmer2/status/1202312626891452416) — Why’s that a big deal? It means it’s going to be part of ES2020, the next major ECMAScript spec. The [proposal itself is here](https://github.com/tc39/proposal-optional-chaining) and here’s [how it would work.](https://v8.dev/features/optional-chaining) 

Rob Palmer on Twitter   [![\](https://copm.s3.amazonaws.com/93045a3e.png)](https://www.jetbrains.com/webstorm/promo/?utm_source=cooperpress&utm_medium=cpc&utm_campaign=webstorm) 

[Build Great Apps Faster with the New WebStorm 2019.3](https://www.jetbrains.com/webstorm/promo/?utm_source=cooperpress&utm_medium=cpc&utm_campaign=webstorm) — With everything you need to start coding available out of the box, you can be more productive and write better code in no time. Faster startup, advanced Vue.js support, and even smarter JavaScript code completion – start your free trial today. 

JetBrains sponsor   

[WebAssembly is Now a W3C Recommendation](https://www.w3.org/2019/12/pressrelease-wasm-rec.html.en) — This is a _really_ big, formal step for WebAssembly and the Web as a whole, although it might ultimately lead to JavaScript becoming slightly less important as languages like Rust, Go, and C# begin to target browsers directly by compiling to WebAssembly. This press release doesn’t explain WebAssembly _particularly_ well, so if you want to learn more about it, [enjoy this illustrated guide](https://hacks.mozilla.org/2017/02/a-cartoon-intro-to-webassembly/) or [this](https://rsms.me/wasm-intro) if you want something more advanced. 

W3C   

[What's New for Node.js in 2020](https://developer.okta.com/blog/2019/12/04/whats-new-nodejs-2020) — Node’s ten years old and continuing to develop at a rapid pace. David dusts off his crystal ball and looks at some of what’s coming. 

David Neal   

[What People in Tech Said About JavaScript On Its Debut](https://medium.com/dailyjs/heres-what-people-in-tech-had-to-say-about-javascript-when-it-debuted-in-1995-a4b81dc05b71) — Yep, it’s JavaScript’s birthday again! It was first announced this week 24 years ago, but who was singing its praises in its earliest form? 

Chris Brandrick   

[The Advent of Code 2019](https://adventofcode.com/) — If you have a little time each day to do some programming challenges, you could do a lot worse than the _Advent of Code_ which is now in its fifth year. I’ve really enjoyed the puzzles so far and there’s even [a sub-Reddit](https://www.reddit.com/r/adventofcode/) where people discuss their solutions. 

The Advent of Code     

⚡️ Quick Releases 

- [create-react-app 3.3.0](https://github.com/facebook/create-react-app/releases/tag/v3.3.0) — The quick React app initializer.
- [Node 13.3.0](https://nodejs.org/en/blog/release/v13.3.0/)
- [npm 6.13.2](https://blog.npmjs.org/post/189456212240/release-6132)
- [Riot 4.7.0](https://github.com/riot/riot) — Simple component-based UI library.
- [Comlink 4.2](https://github.com/GoogleChromeLabs/comlink) — Makes WebWorkers _enjoyable._   

💻 Jobs  

[Fight Crime With Code @ Mark43 - Sr. FE Engineer (NYC/Charlotte)](https://www.mark43.com/departments/engineering/) — Build mission critical systems for 911 Dispatch and First Responders using React, Electron and GraphQL. 

Mark43   

[JavaScript Developer at X-Team (Remote)](https://x-team.com/remote-javascript-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=js) — Work with the world's leading brands, from anywhere. Travel the world while being part of the most energizing community of developers. 

X-Team   

[Find a Job Through Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-javascriptweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77584) — Make a profile, name your salary, and connect with hiring managers from top employers. Vettery is completely free for job seekers. 

Vettery  

📘 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/jtijreopzkv1kwhpsnto.jpg)](https://t.co/CZMHrm2XgK)  

[Learning Modern JavaScript with Tetris](https://t.co/CZMHrm2XgK) — A thorough walkthrough of all the things to consider when building your own Tetris game in JavaScript. Bit of fun for the weekend, maybe? 

Michael Karén   

[9 Questions to Test Your Knowledge of Promises](https://danlevy.net/javascript-promises-quiz/?s=r) — A nice way to quickly test your knowledge. 

Dan Levy   

[Top CI Pipeline Best Practices - A Developer's Guide](https://try.datree.io/ci-best-practices?utm_source=cooperpress&utm_medium=jsweekly) — At the center of a good CI/CD setup is a well-designed pipeline. Check out this best practices guide for developers. 👍 

Datree.io sponsor   

[How I Created 488 'Live Images' with Node, Cloudinary, and Puppeteer](https://bitsofco.de/how-i-created-488-live-images/) — A neat look at stitching together a few different systems to provide reliable, hosted graphical versions of the support grids [Can I Use](https://caniuse.com/) provides. 

Ire Aderinokun   

[An Easy Way to Build a Tree Using Object References](https://typeofnan.dev/an-easy-way-to-build-a-tree-with-object-references/) — Building a tree structure can be easy if you think in terms of references. 

Nick Scialli   

[The People Behind JavaScript: Allen Wirfs-Brock](https://javascript.christmas/2019/6) — Allen is an industry veteran who was editor of the ES2015 (a.k.a. ES6) spec and is a TC39 member. 

Svein Petter Gjøby   

[🤖 NanoNeuron: 7 Simple Functions to Demo Simple Machine Learning](https://github.com/trekhleb/nano-neuron) — Some simple functions to give you a _feel_ for how machines can ‘learn’ things, via model prediction, cost calculation, forward and backwards propagation, and training. 

Oleksii Trekhleb   

▶[Coding a Complete Snake Game](https://www.youtube.com/watch?v=jRstJFiWnDQ) — At almost two hours, don’t expect a tightly edited tutorial – this is more a relaxing, entertaining and realistic ‘fly on the wall’ look at building something from scratch. 

Fun Fun Function   

[Tried & True Productivity Tips from 25 React Experts](https://www.telerik.com/kendo-react-ui/react-best-practices-and-productivity-tips/?utm_medium=cpm&utm_source=jsweekly&utm_campaign=kendo-ui-react-blog-productivity-tips-pp&utm_content=brieflink) 

Progress KendoReact sponsor   

[How `...` Works in JavaScript](https://javascript.christmas/2019/2) — It plays two roles, as a _rest parameter_ and as the _spread operator_. 

Dag Stuan   

▶[The Story of Migrating to Apollo + GraphQL at Airbnb](https://www.youtube.com/watch?v=pywcFELoU8E) — Covers Airbnb’s use of TypeScript, their incremental adoption of GraphQL, and what they’ve learnt along the way. 

Brie Bunge  

🔧 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/nmot7xmlhvidt1obj1ke.jpg)](https://github.com/leongersen/noUiSlider)   

[noUiSlider: Lightweight Range Slider with Full Multi-Touch Support](https://github.com/leongersen/noUiSlider) — Pretty powerful and flexible. There’s a [full page of examples.](https://refreshless.com/nouislider/examples/) 

Leon Gersen   

[Over 100 JavaScript Algorithms and Data Structures Demonstrated](https://github.com/trekhleb/javascript-algorithms) — Examples of many common algorithms (e.g. bit manipulation, Pascal’s triangle, Hamming distance) and data structures (e.g. linked lists, tries, graphs) with explanations. 

Oleksii Trekhleb   

[The Most Complete Spreadsheet Solution for JavaScript Apps - SpreadJS](https://www.grapecity.com/spreadjs?utm_source=JavaScriptWeekly&utm_medium=SpreadJS-12-06-19-General-Ad&utm_campaign=CooperPress-Fall-2019) — Fast enterprise JavaScript spreadsheet for delivering true Excel-like spreadsheet experiences. Download Free Eval. 

SpreadJS by GrapeCity sponsor   

[reg: An Experimental Native ESM Package Manager](https://github.com/mikeal/reg) — Very early days, but an interesting approach! Comes complete with a “do not use this in production” warning, so take care. 

Mikeal Rogers   

[React View: An Interactive Playground to Show Off Your Components](https://baseweb.design/blog/introducing-react-view/) — React View is itself a component you can use in any React app to present your components to other developers by both showing the component and letting users edit its props or edit the code used to display it. 

Vojtech Miksu   

[Creepyface: Makes Face Images Follow The Pointer](https://creepyface.io/) — This is an effect I’ve seen mostly on ‘about us’ pages where faces of team members follow your pointer around. If you want to recreate that, here you go. 

Alejandro Tardín  

💛 Reassuringly seen on Twitter  

Never forget, readers, you never need to feel alone in this :-) 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1575649030/jsjnhbzmuktgk63ytvmi.jpg)](https://twitter.com/gesa/status/1202393488035180544)        

Curated by [Cooperpress](https://cooperpress.com/) and [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
