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 - [Front-End Developer Handbook 2017](https://www.gitbook.com/book/frontendmasters/front-end-handbook-2017/details) - An outline and discussion on the practice of front-end engineering: how to learn it and what tools are used when practicing it in 2017. - [A beginner's guide to JavaScript variables and datatypes](https://www.sitepoint.com/beginners-guide-javascript-variables-and-datatypes/) - If it seems like a daunting journey ahead and you don’t know where to start, here’s a little secret: it doesn’t take any special skill to learn how to program, and everyone starts at zero. - [Animating Pacman on the canvas](http://cwestblog.com/2017/02/02/canvas-animating-pacman-head-in-js/) - A walkthrough on creating and animating a representation of Pacman.
Learning More
- Indentation is the enemy: Writing less complex JavaScript - When it comes to coding in JavaScript, I’ve noticed a pattern. The more indentation in my code, the more complicated it is.
- JSON store as a service: jsonbin - A personalised JSON store as a service that you interact with over RESTful URLs.
- Beating JSON performance with Protobuf - Protocol buffers, or Protobuf, is a binary format created by Google to serialize data between different services.
- The Promise of a burger party - “well, let’s use fetch()…so in code… umm…” while I paused to remember fetch API, the person I was talking to said, “It returns a promise”. My brain froze, and I said: “I honestly don’t know what you mean…”
- Use Reduce() and Promises to execute multiple async calls sequentially - Implementing a sequential async call thing in the tradition of the reduce() school.
- Jscrambler themed sliding puzzle tutorial built with Phaser.js - Phaser was built with the sole purpose of making game development easier.
- CacheGit - The easiest way to deliver open source JavaScript on a managed global CDN.
- A demo of ag-Grid: The JavaScript Datagrid for Enterprise (video) - We show how sorting, set filtering, grouping & aggregation and pivoting works in our grid.
- FuseBox and the epicness of dynamic modules - FuseBox offers 100% compatible commonjs ecosystem for browsers. Every single file that you bundle will be accessible via FuseBox API.
Libraries
- Composition-logger - A a package to help visualize/debug functional compositions.
- Tiny Tim - Meet Tim, a simple, small timer < 200 bytes.
- A-table - Simple Editable Table UI Library.
- Mithril - Mithril is a modern client-side Javascript framework for building Single Page Applications. It’s small (< 8kb gzip), fast and provides routing and XHR utilities out of the box.
ES6 / ES2015 and beyond
- Detect whether a host environment supports ES6 - Detects whether a host environment supports ES6. Algorithm by Netflix.
- 10 Lodash features you can replace with ES6 - A look at using native collection methods with arrow functions and other new ES6 features to help us cut corners around many popular use cases.
- Video tutorial - ES6 arrow functions with 3 exercises - Learn about Arrow Functions, and you can also put theory into practice by solving three exercises.
- 6 Great Uses of the spread operator - I’ve become a big fan of the spread operator, three dots that may change the way you complete tasks within JavaScript.
- Native ECMAScript modules: the new features and differences from Webpack modules - The differences with bundled modules, abilities to interact with the module scripts, and how to rewrite Webpack modules to native ES ones.
- Creating functions for tagged template literals - Tagged template literals are an extension to template literals. Both are new additions to JavaScript as part of ES2015.
- ES8 feature set: JavaScript is getting asynchronous - The final feature set of ES8 hasn’t been approved yet, as on Feb 2017, though we can suppose that all the specs from stage 4 and most of the stage 3 will be included in ES2017.
Node
- Getting started with Browserify - Browserify bundles your code and brings all the power of Node to the browser. It not only lets you require files, but also provides a range of Node libraries for a seamless front-end dev experience.
- 9 fantastic utilities for the Node.js developer - A list of nine different modules that you can install globally on your system to help improve your development workflow and get the most out of your development time to be the most efficient developer you can be.
- CQRS (Command Query Responsibility Segregation) explained - Makes it easier to scale, read and write operations and to control security - but adds extra complexity to your system.
- Node by numbers 2016 - NodeSource - Analyzing a suite of metrics around Node.js.
Frameworks
- The 4 Best Responsive HTML5 frameworks - Don’t feel like creating a website from scratch for your next project? Check out any of these responsive HTML5 frameworks that’ll help you get going quickly and easily.
- How to build, test and deploy React applications in 2017 - Continuous integration (CI) is all the rage, but it’s not just a practice exclusive to backend guys; front-end developers have no excuse not to use it.
- Nachos – Open Source UI Kit for React Native - Pick from a bunch of pre-coded UI components ready for your next kick-ass app in JavaScript or React.
- Deploy create-React-app with Surge - Deploying an app to Surge is insanely easy, and it’s even free (including a custom domain and SSL).
- Making dynamic form inputs with React - Forms seem very simple when we only have a fixed set of fields, but In real apps forms are often a bit more lively and dynamic. A common example is having a set of similar inputs that are backed by an array.
- Understanding nested routing in React - How to handle nested routing in a React web application.
- JSX framework – A syntax sugar for ReactJS - JSX preprocessor it is a step that adds XML syntax to JavaScript. You can definitely use React without JSX but JSX makes React a lot more elegant.
- What happens when you use RxJS in React? - Using observables is clearly a good thing. So why don’t we use it more often? More specifically, why don’t we use it in React apps?
- Multiple solutions for Angular ahead-of-time (AOT) compilation - An approach to deal with the growing size and slowing speed of an application.
Testing
- First look to javascript unit test frameworks – ExpectJs - A minimalistic BDD assertion toolkit based on should.js that provides very useful features to developers in order to test their codes through unit test.
Cool stuff
- Krita - A fast, flexible, and free Photoshop alternative built by artists.
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.