---
title: "Why 0.1 + 0.2 doesn't equal what you'd think.."
publication: "JavaScript Weekly"
issue: 455
published_at: "2019-09-20"
canonical_url: "https://javascriptweekly.com/issues/455"
---

This week's JavaScript news       

#455 — September 20, 2019 

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

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1568996274/gigmhd6blymgmjmiqp0s.jpg)](https://phabricator.wikimedia.org/phame/live/7/post/175/wikipedia_s_javascript_initialisation_on_a_budget/)   

[Wikipedia's JavaScript Initialization on a Budget](https://phabricator.wikimedia.org/phame/live/7/post/175/wikipedia_s_javascript_initialisation_on_a_budget/) — As one of the world’s most heavily used sites, Wikipedia wants to keep things running as quickly as possible, including delivering all of their JavaScript within 28KB. Here’s what they’ve done to (almost) reach the goal. 

Timo Tijhof   

[Practical Ways to Write Better JavaScript](https://stackoverflow.blog/2019/09/12/practical-ways-to-write-better-javascript/) — A handful of best practices (though I know many will disagree with the _“use TypeScript”_ one) from linting to testing and using modern ECMAScript features. 

Ryland Goldstein   [![\](https://copm.s3.amazonaws.com/8c536cff.jpg)](https://frontendmasters.com/courses/complete-react-v4/) 

[⚛️ New Course: Complete Intro to React, v4](https://frontendmasters.com/courses/complete-react-v4/) — Learn to build real-world applications in React. Much more than an intro, you’ll start from the ground up all the way to using the latest features in React 16+ like Context and Portals. _We also launched a follow up course, [Intermediate React](https://frontendmasters.com/courses/intermediate-react/)._ 

Frontend Masters sponsor   

▶[Why `0.1 + 0.2 === 0.30000000000000004`: Implementing IEEE 754 in JS](https://www.youtube.com/watch?v=wPBjd-vb9eI) — Head to your JavaScript console now and type in `0.1 + 0.2`. If the answer confuses you, this is the video for you. And even if you know _why_, working with the building blocks behind floating point representations is just _cool_. 

Low Level JavaScript   

[Machine Learning For Frontend Developers with Tensorflow.js](https://www.smashingmagazine.com/2019/09/machine-learning-front-end-developers-tensorflowjs/) — How to get started with machine learning using Tensorflow.js, plus a brief look at the limits of doing machine learning on the frontend. 

Charlie Gerard   

[All 245 Entries of the 2019 JS13kGames Competition](https://js13kgames.com/entries/2019) — We linked to the popular 13 kilobyte game development competition a few weeks back and now you can play the results. Some _very_ impressive games here (like [this Missile Command clone](https://js13kgames.com/games/infinite-missiles/index.html)) considering the 13KB limit – you’re all geniuses! 

Andrzej Mazur     

**Quick bytes:** 

- Indeed has [donated $10,000 to the ESLint project.](https://eslint.org/blog/2019/09/indeed-donates-10000-to-eslint)
- A bot [found a vulnerability in a dependency](https://twitter.com/gabro27/status/1173547934132178944?s=21), sent a PR to fix it, another bot merged and celebrated it. Welcome to the no-human development future 😄
- If you want to use GitHub Actions (still in beta), apparently [all signups are now accepted instantly.](https://twitter.com/natfriedman/status/1174158823877042177) Enjoy.   

💻 Jobs  

[It’s Not Rocket Science . . . Or is it?](https://job.careersjs.com/kad) — Our client is looking for a programmer with out-of-this-world skills and an attention to detail that would make NASA sit up and take notice. 

CareersJS   

[Engineering Manager - Boston, MA](https://www.upstatement.com/jobs/engineering-manager.html) — Upstatement seeks a maker/manager to help build [impactful digital products](https://www.upstatement.com/services/) for [clients we believe in](https://www.upstatement.com/work/) as a part of a [passionate team](https://www.upstatement.com/studio/). 

Upstatement   

[Find a JavaScript 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) — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started. 

Vettery  

📘 Articles & Tutorials  

[The 80/20 Guide to Maps in JavaScript](http://thecodebarbarian.com/the-80-20-guide-to-maps-in-javascript.html) — A Map is an object that stores key/value pairs. Maps are similar to general JavaScript objects, but there are a few key differences that make maps useful.. 

Valeri Karpov   

[How to Profile a React App for Performance](https://kentcdodds.com/blog/profile-a-react-app-for-performance) — See how to use the React DevTools and React’s _profiling_ build to get started with performance profiling a production app. 

Kent C Dodds   

▶[Duck Tapes Podcast - New Episodes Every Monday](https://www.ducktapes.fm) — We interview the titans of tech to discuss hot topics across the JS community. With us, you will laugh while you learn. 

Duck Tapes Podcast sponsor   

[Moving Beyond `console.log()` — 8 Methods You Should Use When Debugging](https://t.co/HSVgSHEPVV) — Includes `console.assert`, `console.count`, `console.group` and two timing methods. 

Marco Antonio Ghiani   

[A 4 Part Guide to Iterators and Generators](https://jfet97.github.io/JavaScript-Iterators-and-Generators/) — A lot to digest in this series about both synchronous and asynchronous iterators and generators, with each getting a full article. 

Andrea Simone Costa   

[Human Readable JavaScript](https://dev.to/laurieontech/human-readable-javascript-337o) — There are plenty of optional characters when defining functions. When used in functional methods these options increase. What are they? And how do they affect readability? 

Laurie Barth   

▶[How I Learned to Stop Worrying and Love the Vue 3.0 Composition API](https://www.youtube.com/watch?v=8D4N7IcexoA) — If the [proposed Vue 3.0 additions](https://github.com/vuejs/rfcs/blob/function-apis/active-rfcs/0000-function-api.md) intrigued you, this talk is an accessible introduction. _(Sadly, the code in the middle of the talk is almost impossible to read in the video, but [it’s on GitHub](https://github.com/ShetlandJ/Vue3Todo/tree/master/src/components) and but there are other useful things to enjoy here.)_ 

James Stewart   

▶[Building a Webapp to Do Optical Character Recognition](https://www.youtube.com/watch?v=a1I3tcALTlc) — A very accessible 30 minute tutorial walking through building a simple Node-based webapp that can do OCR on images and convert them into PDFs with selectable text. 

Dev Ed   

[On Demand: Getting Started with NodeSource and AWS Lambda](https://pages.nodesource.com/getting-started-with-nodesource-and-AWS-lambda-0814-nw.html) 

NodeSource sponsor   

[Getting Started with Electron, TypeScript, React and Webpack](https://www.sitepen.com/blog/getting-started-with-electron-typescript-react-and-webpack/) — Covers the essentials of setting up an app with the various tools. The actual app building is left as an exercise for you. 

Justin Ellison   

[Cheat Sheet for Moving from jQuery to Vanilla JavaScript](https://tobiasahlin.com/blog/move-from-jquery-to-vanilla-javascript/) 

Tobias Ahlin  

🔧 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/yivcabw2f7ltwq2zowc7.jpg)](https://medium.com/storybookjs/storybook-5-2-794958b9b111)   

[Storybook 5.2 Released: The Component Development Tool](https://medium.com/storybookjs/storybook-5-2-794958b9b111) — [Storybook](https://storybook.js.org/) is a popular tool for working on UI components for React, Vue, and Angular, and version 5.2 now adds ‘zero config’ support for generating documentation for your components (plus React hooks and improved TypeScript support). 

Michael Shilman   

[Sortable 1.10: Reorderable Drag-and-Drop Lists](https://sortablejs.github.io/Sortable/) — Happy on touch devices and modern browsers (IE9+), drag items between lists, define your own drag handles, works well with Angular, React, etc. [GitHub repo.](https://github.com/SortableJS/Sortable) 

Sortable   

[How Taiko Compares to Other Browser Automation Tools](https://gauge.org/2019/08/21/how-taiko-compares-to-other-browser-automation-tools/?utm_source=how_taiko_blog&utm=medium=js_weekly&utm_campaign=taiko_js_ads&utm_term=&utm_content=) — Taiko chooses reliability over extreme performance. But, you can choose to override it. See how Taiko compares with other browser automation tools. 

ThoughtWorks -Taiko sponsor   

[Vue Select: A Solid, Feature-Rich `<select>` Component for Vue](https://vue-select.org/) 

Jeff Sagal   

[Geometric.js: A Library for Doing Geometry](https://github.com/HarryStevens/geometric) — Work with points, lines, polygons, angles, etc. 

Harry Stevens   

[Emittery: A Simple, Modern Async Event Emitter](https://github.com/sindresorhus/emittery) 

Sindre Sorhus     

⚡️ Quick Releases 

- [VuePress 1.1](https://github.com/vuejs/vuepress) — A Vue-powered static site generator.
- [Ava 2.4](https://github.com/avajs/ava/releases/tag/v2.4.0) — Popular Node.js test runner.
- [Relay 6.0](https://github.com/facebook/relay) — Declarative GraphQL data fetching for React.
- [PapaParse 5.1](https://github.com/mholt/PapaParse/releases/tag/5.1.0) — Fast CSV parser.
- [Glide 3.4](https://github.com/glidejs/glide) — Dependency-free slider and carousel.
- [ESLint 6.4.0](https://eslint.org/blog/2019/09/eslint-v6.4.0-released)
- [GPU.js 2.0.0](https://github.com/gpujs/gpu.js/releases/tag/2.0.0)           

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
