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 …
- What is JavaScript? - This article is being written specifically for those of you who have never (or barely) written a line of JavaScript, and want to learn more about the language and understand what’s out there.
- Prototypal object-oriented programming using JavaScript - Understanding the rationale behind prototype-based programming was my “aha” moment with JavaScript and resolved most of the gripes I had with the language. I hope learning about prototype-based OOP brings you the same peace of mind it brought me.
- How to implement smooth scrolling in vanilla JavaScript - A pure JavaScript solution using the jump.js library.
- Should I use === or == equality comparison operator in JavaScript? - As it turns out, there is a straightforward way to decide which one to use.
Learning more
- How to keep everything in mind when solving a complex problem - Trying to organise and keep pieces in mind is hard work for a human brain, which is why more abstract and expressive programming languages were invented.
- A Comprehensive look at events in jQuery - A quick look at five broad categories of event methods, and the best practices to follow when working with them.
- DOM listener: capture, passive, and once - The listener is updating its overloads, with EventListenerOptions, capture and passive properties, browser default behavior, and more.
- Pagination best practices - The importance of pagination is very subjective — it depends on the content and context.
- Quick intro & how to: finding code by functionality - A free online code search engine for open source code.
- Real-life Javascript generators - How generators in javascript help us write more robust and clean code.
- The Benefits of premature optimization - What does “premature optimization” actually mean, and why is it generally so bad?
- Three D’s of web development #3: dependency injection - Provides a solution for inversion of control (IoC). The easiest way to understand IoC is through an example, which we’ll explore.
Libraries
- FRZR - A tiny view library.
- Live coding a view library from scratch (video) - A video presentation on how the FRZR view libraries work under the hood.
- SpriteKit from scratch: physics and collisions - A detailed look into the physics simulation functionality of SpriteKit and how this can be utilized in your 2D SpriteKit games.
- Stamps - the new software development paradigm - A new programming paradigm intended to be a better alternative to classic OOP and an addition to FP.
- Rethinking modern JavaScript development - Tiny libraries. Doing one thing well. A blessing and a curse?
Frameworks
- Battle of JavaScript: The 4 frameworks leading the pack in 2016 - A guide on the top front-end JavaScript frameworks for 2016.
- Node.js and Socket.IO: How security fails when ‘null’ is ‘false’ - Of the eight examples of design principles for secure protection mechanisms, one of these is the principle of fail-safe defaults.
- Understanding the Redux paradigm - If you’re used to MVC based architectures and want to know more about Redux, this post might be of help.
- Using Flux for component state is an anti-pattern! - A challenge is to decide what shall be treated by Flux and what not. By far, not everything that is a state is worth being shifted towards Flux.
React/Redux
- A centralized state management inspired in Flux and Redux - A reactive centralized state management for Javascript apps.
- DevTools for Redux - With hot reloading, action replay, and customizable UI
- Tutorials and resources - Curated tutorial and resource links on React, Redux, ES6, and more.
- React shortcut chooser - A React component for letting the user choose a keyboard shortcut.
Angular
- AngularJS Authentication Screencast Series - part 2 - Learn how to add JWT authentication to your AngularJS 1.x app
- Using ES6 arrow functions in Angular 1.x + cheatsheet - The recently released Angular 1.5 introduced support for injecting dependencies into arrow functions. Unfortunately this support added a couple of nice pitfalls for newcomers that are important to understand and avoid.
- Forms and custom validation in Angular 2! - Learn how to create both simple and complex forms, as well as how to do custom form validation.
- Angular 2 goes out of beta, rc0 available - Read the changelog here.
Testing & Debugging
- Log wizard - A log viewer that is easy and fun to use.
- Faster Tests for Multi-Node Code with ES6 and Babel - How to use Babel to support ES6 without affecting build times.
Cool stuff
- Petri Dish - A flocking simulator with canvas
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.