Hello and welcome to This Week in JavaScript.
Thanks to an exceedingly good week away sharing modern tabletop games with people in Hanmer Springs, and escaping only a few hours before the 7.8 quake hit, I managed to get all out of sorts and miss publishing last week’s article. For this I can only ask your forgiveness, mea culpa - mea maxima culpa.
The following is 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
- Best practices for JavaScript function parameters - From time to time, people ask things like “should I use objects to pass function arguments”.
- Explaining JavaScript closure & scope chain with examples - While Javascript’s inheritance and scoping is different from most languages, I think that with proper understanding, these quirks can be embraced and used to their full potential.
Learning More
- The importance of JavaScript scope control - Since everything is dynamic and implicit rather than static and explicit, you often find yourself writing far less efficient code than what could be done.
- Writing efficient JavaScript - simple techniques to fulfill the JavaScript compiler optimization process which results in faster running code.
- JavaScript is not an enemy of accessibility! - The problem with inaccessible output is not that they come from frameworks, but that these frameworks are being told the wrong thing.
- Free as in puppy — open sourcing your JavaScript code - A look at the benefits of open sourcing your code and the pitfalls to avoid.
- Why I’m thankful for JavaScript fatigue - Learning JS can be overwhelming. I know it can feel like there is an ocean of stuff you don’t know. Trying to soak it all up is like trying to soak up the real ocean with a beach towel.
Libraries
- Pixelmatch - The smallest, simplest and fastest JavaScript pixel-level image comparison library
- Vue.js 2.1 released - Now with scoped slots, conditional keep-alive, v-else-if, relaxed filter usage, and more.
ES6
- ES6 iterators and generators in practice - If you are a fan of lazy evaluation, or you want to be able to describe infinite sequences. Understanding iterators also helps you understand generators, promises, sets, and maps better.
Node
- Node.js tutorial videos: debugging, async, memory leaks, CPU profiling - how to use the debug module, the built-in debugger, and Chrome DevTools to find and fix issues easily.
- What’s new in Node 6? - The latest long-term support version, 6.x, has more than 98% compatibility with the JavaScript ES6 (ECMAScript 2015) syntax.
- Node.js: Playing Sounds to Provide Notifications - Learn how to play sounds using Node.js, and how to continue to play a sound until our notification has been acknowledged by pressing a key on the keyboard.
React / Redux
- Common React native app layouts: login page - The main focus of this series is to get your hands dirty in laying out content in your React Native apps.
- Tiny React babel-plugin for the lazy - Replace string value of the ref attribute to function
- Why Redux need reducers to be “pure functions” - There is a policy to create a NEW object whenever there is a change and send it to the framework, and to send back the old object when there’s no change. A new object represent new state.
- Practical Redux, part 4: UI layout and project structure - Set up the initial application layout to match our UI mockups, talk about folder structures, and look at an example of managing UI state with Redux.
Angular
- Spotting outdated Angular 1.x posts - A list of things that should indicate to you that the post you’re reading might be a bit… stale.
- Angular seed - A collection of best practices used in developing single page applications.
- Get Angular 1 Features in Angular 2 - A guidance for implementing common features of Angular 1 in Angular 2. Some things have been removed or replaced. Some require a mental model shift. We’ll cover the basics and hopefully you’ll be able to get up and running more quickly with your own Angular 2 apps.
- Angular 2 @Input() property changes detection - Angular’s @Input() decorator allows you to pass data from parent to child components. These “dumb” components rely solely on the data they receive from their parents and know nothing about the world outside them.
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.