Hello and welcome to This Week in JavaScript, our lovingly curated collection of links relating to what’s new and exciting in the world of JS. The complete list is tagged jsweekly. (Don’t forget to check out our weekly .NET and front end roundups too!)
And now for this week’s JavaScript finds …
Getting started
- Revisit the basics of JS - Learn the fundamentals of JavaScript, the programming language of the Web.
- Dependency injection - Explaining dependency injection and illustrating how important the concept is to modern web development.
Learning more
- The software developer’s library - A treasure trove of books for people who love code
- Proper random numbers in Javascript - Math.random() is thought to be “the way” for generating random numbers on the client but sadly, their implementations usually leaves a lot of room for improvement.
- Flatten an array without recursion - Solving real time problems where we can remove recursion to write performant code.
- Real-life JavaScript generators - How generators in javascript help us write more robust and clean code.
- DOM listener: capture, passive, and once - An update to its overloads, accepting an arbitraty EventListenerOptions dictionary, an object with a capture and passive properties
- Rethinking modern JavaScript development - The reasoning behind the creation of Roc, a modern JavaScript toolkit.
Libraries
- A comprehensive look at events in jQuery - A quick look atfive broad categories of event methods, and the best practices to follow when working with them.
- Introduction to p5.js - A JavaScript library for artists, designers, and educators, with a specific focus on the visual arts.
- Kewler.js - A simple functional and immutable color manipulation library.
- Collection of phonetic algorithms written in JS with live examples - Produce an approximative phonetic representation for when performing fuzzy matching.
- Motorcycle.js and lessons learned the hard way - The steps I went through to get it “right” and to realize that once I changed my thinking, that task became simple again.
- Clippy - Add Clippy or his friends to any website for instant nostalgia.
ES2015
- Trees of promises in ES6 - How to handle trees of ES6 Promises, via an example where the contents of a directory are listed asynchronously.
- A new kind of event emitter with ES6 features, use any type of value for the listeners, not just strings - stores listeners and actions in Maps, this allows to use arbitrary values as keys for your listeners.
Frameworks
- Battle of JavaScript - A guide on the top front-end JavaScript frameworks for 2016.
- Android from scratch - A few of these user interface patterns and how they can help your users by creating a great experience when using your app.
- Why in Node.js you need to do asynchronous operations - Instead of returning results as the function return value, the “results” are delivered by calling the callback function at a later time.
- LazyDOM — an experiment to bring virtual DOM to the browser natively - LazyDOM elements are fast like React elements, but can be consumed like real DOM Elements because they lazily proxy to one.
- AngularJS authentication screencast series - part 2 - Auth0 makes the process a lot easier, with a full authentication service that removes the need to write authentication logic yourself.
- Developers’ perceptions about AngularJS - A slide-deck on perceptions from 460 developers.
- Why we ditched Angular.js and wrote our own UI library - Our unique approach to handling the complex UI of an app like SmartDraw, and why we initially adopted and then rejected Angular.js.
Testing & Debugging
- A gentle introduction to JavaScript test driven development - Getting started with unit tests.
- Writing unit tests for personal projects (video) - On the importance of writing unit tests.
- Awesome-eslint - A list of awesome ESLint plugins, configs, etc.
- Eslint-formatter-pretty - A pretty ESLint output.
Cool stuff
- Interactive exposure tool - Where you instantly see what each setting (shutter speed, aperture, ISO) is doing.
- Hipster sound - Just the right amount of background noise to boost a web dev’s workday.
For more links like this and to keep up-to-date with the latest goings on in JS land, you can follow SitePoint’s JavaScript channel on Twitter.
Please PM us if you have anything of interest for the next issue or if there is anything you would like to see featured. Paul and chrisofarabia.