---
title: "#370: The Building Blocks of Web Workers"
publication: "JavaScript Weekly"
issue: 370
published_at: "2018-01-26"
canonical_url: "https://javascriptweekly.com/issues/370"
---

#370: The Building Blocks of Web Workers

This week's JavaScript news — [Read this e-mail on the Web](http://javascriptweekly.com/issues/370)

JavaScript WeeklyIssue 370 — January 26, 2018[Webpack 4 Beta: Happier, Faster, More Productive..](https://medium.com/webpack/webpack-4-beta-try-it-today-6b1d27d7d7e2)The final release of the popular module bundler is due in a month to let plugin developers catch up, but you can play with it already. It’s faster, output is smaller, it’s taken a ‘zero config’ approach, and _way more_. Sean T. Larkin 
[The Building Blocks of Web Workers and 5 Cases for Their Use](https://blog.sessionstack.com/how-javascript-works-the-building-blocks-of-web-workers-5-cases-when-you-should-use-them-a547c0757f6a)An overview of Web Workers, a way to run JavaScript in background threads in the browser, plus several use cases where they make a great choice. Alexander Zlatkov 
[![bugsnag\](https://copm.s3.amazonaws.com/d9c50f5f.png)](https://www.bugsnag.com/platforms/javascript/?utm_source=cooperpress&utm_medium=cpc&utm_content=free-trial&utm_campaign=javascript&utm_term=javascript-weekly-20180126)[Upgrade Your JavaScript Error Monitoring 🚀](https://www.bugsnag.com/platforms/javascript/?utm_source=cooperpress&utm_medium=cpc&utm_content=free-trial&utm_campaign=javascript&utm_term=javascript-weekly-20180126)Automatically detect & diagnose JavaScript errors impacting your users with Bugsnag. Get comprehensive diagnostic reports, know immediately which errors are worth fixing, & debug in a fraction of the time compared to traditional tools. [Try it free](https://www.bugsnag.com/platforms/javascript/?utm_source=cooperpress&utm_medium=cpc&utm_content=free-trial&utm_campaign=javascript&utm_term=javascript-weekly-20180126). bugsnagSponsor
[The Why Behind The 'Wat': Explaining JS's Weird Type System](https://medium.com/dailyjs/the-why-behind-the-wat-an-explanation-of-javascripts-weird-type-system-83b92879a8db)Seen the [Wat talk?](https://www.destroyallsoftware.com/talks/wat) Scratching your head at the intriguing nature of JavaScript’s type system? Learn more here. Abhinav Suri 
[Paper Programs: Run JavaScript Programs from Pieces of Paper](https://paperprograms.org/)An interesting project that involves using a projector and camera to scan and run physical ‘programs’ that you can literally edit ‘by hand’. Jan Paul Posma 
[A Set of Best Practices for JavaScript Projects](https://github.com/wearehive/project-guidelines)One company’s extensive set of guidelines covering ‘project level’ concerns like git, dependencies, environments, and API design. Hive 
[Interesting ECMAScript 2017 Proposals That Weren’t Adopted](https://blog.logrocket.com/interesting-ecmascript-2017-proposals-163b787cf27c)Some interesting feature proposals that didn’t make it. One for the perpetually curious readers amongst you :-) Kaelan Cooter 
[The Top 10 JavaScript Errors from 1000+ Projects](https://rollbar.com/blog/top-10-javascript-errors/)..and how to avoid them yourself. Spoiler: Most involve TypeError. The data behind this comes from the Rollbar error monitoring service. Jason Skowronski 
[jQuery 3.3 Released](https://blog.jquery.com/2018/01/19/jquery-3-3-0-a-fragrant-bouquet-of-deprecations-and-is-that-a-new-feature/?ref=webdesignernews.com)Yes, jQuery is still with us, and the `addClass`, `removeClass`, and `toggleClass` methods now accept an array of class names. ([3.3.1](https://blog.jquery.com/2018/01/20/jquery-3-3-1-fixed-dependencies-in-release-tag/) rapidly followed 3.3.0.) Timmy Willison 


Jobs

- [Gusto Is Hiring Great React Engineers (SF or Denver)](https://gusto.com/about/careers?utm_source=js-weekly&utm_medium=email&utm_campaign=js-weekly-2018-01-26)Join us to help thousands of small businesses run payroll and offer health benefits, letting them focus on what they do best. Gusto
- [Passionate Senior Frontend Developer, Amsterdam](https://www.thefrontendlab.com/front-end-developer-lead-a-team-of-frontend-developers-c-234-p-1852?utm_source=javascriptweekly&utm_medium=email)Be part of an exciting new venture working on projects for ING, adidas, KLM & Nike, whilst working with a calibre team of developers. thefrontendlab
- [Looking for a Job at a Company That Prioritizes JavaScript?](https://www.vettery.com/tech?utm_medium=cooper-javascriptweekly&utm_campaign=ad-1717&utm_source=newsletter&utm_content=grouped&utm_term=tech)Try Vettery and we’ll connect you directly with thousands of companies looking for talented front-end devs. Vettery

In Brief

[Promise.prototype.finally Now Stage 4 in TC39 Process](https://twitter.com/ljharb/status/956229868575846400) news
Jordan Harband on Twitter

[Nested Ternaries are Great](https://medium.com/javascript-scene/nested-ternaries-are-great-361bddd0f340) tutorial 
Those `condition ? trueExp : falseExp` type constructions.
Eric Elliott

[5 Tips and Thoughts on Async / Await Functions](https://start.jcolemorrison.com/5-tips-and-thoughts-on-async-await-functions/) tutorial
J Cole Morrison

[How To Make a Drag-and-Drop File Uploader With Vanilla JS](https://www.smashingmagazine.com/2018/01/drag-drop-file-uploader-vanilla-js/) tutorial 
A thorough walkthrough, as you’d expect from Smashing Magazine.
Joseph Zimmerman

[Build Your First JavaScript, Android, or iOS App with MongoDB Stitch](https://docs.mongodb.com/stitch/tutorials/?jmp=cpress&utm_campaign=WW_CP_newsletter_sponsorship_FY19Q1&utm_content=sponsored &utm_medium=display&utm_source=javascriptweekly20180126) tutorial 
Get started with the beta release of MongoDB's backend-as-a-service with step-by-step tutorials and sample apps.
MONGODBSponsor

[Deep-Copying in JavaScript: Approaches to Copying Objects](https://dassur.ma/things/deep-copy/) tutorial
Das Surma

[HTML Templating with Vanilla ES2015 Template Literals](https://benfrain.com/html-templating-with-vanilla-javascript-es2015-template-literals/) tutorial
Ben Frain

[7 Quick Techniques for ES6 Developers](https://medium.com/dailyjs/7-hacks-for-es6-developers-4e24ff425d0b) tutorial
Tal Bereznitskey

[Functional Programming in JavaScript with Hyperapp](https://dev.to/aspittel/functional-programming-in-javascript-done-right-with-hyperapp-570f) tutorial 
[Hyperapp](https://github.com/hyperapp/hyperapp) is a very lightweight library inspired by Elm.
Ali Spittel

[eBook: TDD Best-Practices for JavaScript](https://resources.codeship.com/ebooks/test-driven-development-javascript-tdd?utm_source=email-sponsorship&utm_medium=cpc-javascript-weekly-secondary&utm_campaign=ebook-TDD-for-Javascript) 
CodeshipSponsor

[Building Vue.js Apps with Parcel](https://alligator.io/vuejs/vue-parceljs/) tutorial
Joshua Bemenderfer

[Array.from() Accepts a Second Argument That..](https://twitter.com/addyosmani/status/954254600193769473) tutorial 
.. can be a mapping function
Addy Osmani on Twitter

[JavaScript, The Bad Parts: A V8 Engineer's Perspective](https://docs.google.com/presentation/d/1n5ZvVXyItjGNBFoQFh-T04_UdOWcuOdvLC3e_udTjPQ/edit) slidedeck
Benedikt Meurer

[What's New in Chrome 64's DevTools in 3 Minutes](https://www.youtube.com/watch?v=90wNAn05Cf4) video
Google Chrome Developers

[TDD with Wallaby.js](https://www.youtube.com/watch?v=P4UQ-jTTJJ4) video 
Or unit testing on steroids (make sure to watch till the end).
Wallaby.jsSponsor

[What’s New in Vue Devtools 4.0](https://medium.com/the-vue-point/whats-new-in-vue-devtools-4-0-9361e75e05d0) tools
Guillaume Chau

[D3 Discovery: Easily Find Plugins for D3.js](https://d3-discovery.net/) tools 
[D3](https://d3js.org/) is a powerful data visualization toolkit made even better with plugins.
Webkid

[Parcel 1.5 Released: Source Maps, WebAssembly, Rust, and More](https://medium.com/@devongovett/parcel-v1-5-0-released-source-maps-webassembly-rust-and-more-3a6385e43b95) tools 
It’s not just Webpack having all the fun :-)
Devon Govett

[Scratches: An Elegant JavaScript Scratchpad](https://github.com/0x00A/scratches) tools 
Electron-based and it evaluates as you type.
Paolo Fragomeni

[Greenlet: Move An Async Function Into Its Own Thread](https://github.com/developit/greenlet) code 
A simplified single-function version of [workerize](https://github.com/developit/workerize).
Jason Miller

[jsnes: A JavaScript NES Emulator](https://github.com/bfirsh/jsnes) code
Ben Firshman

Curated by [Peter Cooper](http://twitter.com/peterc) and published by [Cooperpress](https://cooperpress.com/).

Like this? You may also enjoy: [FrontEnd Focus](http://frontendfocus.co/) : [Node Weekly](http://nodeweekly.com/) : [React Status](http://react.statuscode.com/)

[Stop getting JavaScript Weekly](*|UNSUB|*) : [Change email address](*|UPDATE_PROFILE|*) : [Read this issue on the Web](http://javascriptweekly.com/issues/370)

© Cooperpress Ltd. Fairfield Enterprise Centre, Lincoln Way, Louth, LN11 0LS, UK
