2016-09-19

Hello and welcome to 'This Week in JavaScript' — another curated collection of links relating to what's new and exciting in the world of JavaScript. 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 finds ...

Getting started

Quick Tip: How to Declare Variables in Javascript - In this quick tip you’ll learn how to use variables and the differences between the various declarations.

JavaScript Refactoring Techniques: Specific to Generic Code - Paul Wilkins demonstrates some simple JavaScript refactoring techniques that can be applied to some JS code in order to make it easier to reuse and more accommodating to future change.

What every JavaScript developer should know about Unicode - The post explains the basic concepts of Unicode. This creates the necessary ground.
Then it clarifies how JavaScript works with Unicode and what traps you may encounter.

Grokking Scope in JavaScript - Scope, or the set of rules that determine where your variables live, is one of the most basic concepts of any programming language. It's so fundamental, in fact, that it's easy to forget how subtle the rules can be.

Learning more

Pragmatic Uses of Monkey Patching in JavaScript - Monkey Patching is a technique to override, extend or even suppress the default behaviour of a code segment without changing its original source code.

The 100% correct way to validate email addresses - From this day forward, you will no longer squander your time trying to work out the perfect regex to validate email addresses.

What, Exactly, Makes Something A Progressive Web App? - A Progressive Web App is functionally defined by the technical properties that allow the browser to detect that the site meets certain criteria and is worthy of being added to the homescreen.

Improving the syntax of EJS templates - EJS templates work, because the meta-language (loops, if-then-else, etc.) is just JavaScript. This blog post describes ideas for improving their syntax.

Override Default Properties with JavaScript - The following is an easy strategy for overriding default browser property values during unit testing.

Libraries

maryamyriameliamurphies.js - A library of Haskell-style morphisms implemented in JavaScript using ECMAScript 2015 syntax.

InversifyJS - A powerful and lightweight inversion of control container for JavaScript & Node.js apps powered by TypeScript.

ES6

Does ES6 Mean The End Of Underscore / Lodash? - Tools like underscore and Lodash – are they now obsolete, with ES6 features replacing most of the utility belt that they had provided?

Template Literals are Strictly Better Strings - So how exactly are template literals strictly better than single and double quoted strings? And why haven’t they pervasively taken over single and double quoted strings, if that were the case?

Introduction into Channels and Transducers in JavaScript - In this article we will figure out what transducers are by creating a low-level naive implementation and then exchanging the low-level implementation with the transducers.js library, which offers a number of functions optimized for real world usage.

React/Redux

Modernization of Reactivity - Reactive programming has taken JavaScript by storm over the last decade, and for good reason.

React Native Elements - Cross-Platform React Native Elements UI Toolkit.

react-game-kit - Make games with React & React Native.

First impressions of React - Remy Sharp shares some of the thoughts he had of that first impression.

Other Frameworks

Angular, version 2: proprioception-reinforcement - The final release version of Angular 2, the full-platform successor to Angular 1 is announced.

Angular 2 Animations - Foundation Concepts - This article builds a component that hides and shows its contents, uses fade animation effects, and allows external components to easily trigger those fade effects.

How Developers use Node.js - Survey Results - RisingStack conducted a survey during 2016 Summer to find out how developers use Node.js and what technologies they prefer with it. This article summarizes the results.

Everything Else

Getting Started with PouchDB Client-Side JavaScript Database - The rise of rich web applications also created a need for good client-side storage mechanisms, and that is where JavaScript databases like PouchDB come in.

Native Infinite Scrolling with the IntersectionObserver API - This tiny but useful API provides a means to efficiently monitor the visibility of specified DOM elements.

yafbp - Yet another front-end build process: Gulp, Nunjucks Templating (Layouts, blocks more), Template data layer (Access data in template or via ajax: global, per page, from all pages), Modular less-stylesheets (Hot-reloading)(Autoprefixed)(Sourcemaps), Modular javascript (Sourcemaps), Auto image-optimization, Sitemap-generator,Autoreload,Proxy...

Introducing debugger.html - debugger.html is a modern JavaScript debugger from Mozilla.

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 Chris of Arabia.

Show more