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!)
This week we’ve seen a lot on how we’ve reached 21-Oct-2015 from Back to the Future, and it’s great to see that the self-tying shoes have been demoed to Michael J. Fox. Also this week we’ve seen the latest Star Wars trailer, but what impresses me more is the behind-the-scenes involvement of Simon Pegg.
And now for this week’s JavaScript finds …
Getting started
- jQuery tips everyone should know - A collection of simple tips to help up your jQuery game.
- Use simple data structures - On choosing a data structure for its conceptual properties and benefits.
- Front-end Developer Handbook - A professional resource for potential and currently practicing front-end developers.
- An intro to functional programming concepts - An intro to the library Ramda, and introduce the concepts of composition, pointfree style, and functors.
- I you, but you’re bringing me down - A heart-felt rant on the troubles with input and textarea elements.
Learning more
- How to use Modernizr responsibly - What is Modernizr and why you should move most of it out of the head section.
- Detect function argument names with JavaScript - How regular expressions can help you to extract function property names.
- Goodbye CoffeeScript, hello TypeScript - Backbone and CoffeeScript wasn’t scaling well to a lot of common UI challenges, such as data syncing, subview management, and redrawable views. It was time for a rethink.
- Full-text search in JavaScript - Details on how relevance scoring works.
- Building cathedrals on the pillars of JavaScript and Functional Programming - We should stop writing JavaScript as if it were Java, and prefer simple classes that compose instead of complex classes that inherit everything.
- Khan Academy coding style guides - Everyone’s making their own style guides these days. Here is Kahn Academy’s own.
- Ludicrously fast page loads - A guide for full-stack devs.
- Web security basics - A quick review of basic web security concepts.
Libraries
- The struggles of publishing a JavaScript library - Why it’s not as simple as only supporting npm and CommonJS.
- TextSurface - A little animation framework which could help you to show message in a nice looking way.
- Comic - Cartoon style drawing for HTML5 Canvas & Raphael.js & D3.js & SVG.js.
- Promise-latest - Prevent out-of-order results from a promise returning function.
- ObjectModel - Runtime Type Checking and Data Model Definition for JavaScript
ES6 and beyond
- Why is there a “temporal dead zone” in ES6? - This occurs when accessing a let or const variable before its declaration.
- The ES6 conundrum (video) - Using it results in compatibiltiy problems, yet transpiling doesn’t help us to use it more.
- Arrow this - How arrow functions interact with the this keyword and arguments object.
- Lazy, composable, and modular JavaScript - How we can use iterables, generators, fat arrows, and for-of – in conjunction with higher-order functions, function composition, and lazy evaluation, to write cleaner and more modular JavaScript.
- Rollup - A next-generation JavaScript module bundler. Author your app or library using ES2015 modules, then efficiently bundle them up into a single file for use in browsers and Node.js.
- ECMAScript 6 destructuring gotcha - Recently, I’ve seen an uptick in the reporting of a specific type of error as it relates to destructuring assignment. Here’s an understanding of the problem.
- Influences on ECMAScript 6 - A list of ECMAScript 6 features and what their influences were.
- Call constructor proposal - A proposal to improve the way that classes are created.
- JavaScript goes asynchronous (and it’s awesome) - A rundown on callbacks, promises, and how they’re leading us to a better asynchronous architecture.
Frameworks
- Choosing a front-end framework: Angular vs. Ember vs. React - A way too early look at this generation of the web’s hottest frameworks.
- Inits - Init system for Node.js.
- Angular 2 in Plain JS - Angular is changing from version 1 to 2. And they’re getting rid of controllers? Everything is a component now? What happened?!
- Multilingual support for AngularJS - Building a single page app (SPA) that instantly switches languages without reloading the page.
- What’s new in Ember 2.0 - Highlighting the major precursor features intended for Ember 2.0.
- Ember Best Practices: Actions Down, Data Up… wait what? - Why we can move away from the Ember {{input}} helper with angle-bracket components and improved actions.
- The viability of JS frameworks on mobile - Not everyone is using the latest and fastest mobile devices. What can we do about this?
React
- React UI Components for OS X El Capitan and Windows 10 - A library that helps you to bring a native desktop experience to the web.
- Feng - Fast start a website using new generation web technologies such as React, Webpack, Hot reload, and CSS modules.
- Kickoff - A lightweight front-end framework for creating scalable, responsive sites.
- Universal React - Boilerplate to solve the MVP (Minimal Viable Product) of a universal app without making extraneous decisions for you (e.g. flux, layouts, testing, linting).
- The viability of JS frameworks on mobile - Is the mobile web a dead-end for apps? Perhaps not.
- Better assertions for shallow-rendered React components - Test React components in true isolation from other component classes, and removes the need for a DOM in the test environment.
- Recompose - A lodash equivalent for React components.
- Structor - A user interface builder for React.
Testing
- Chrome Devtools tips & tricks - Newly found features of Chromes developler tools that are well worth investigating.
- Test-driven development in AngularJS (video) - A birds-eye view of Angular’s testing libraries to give you a sense of the testing landscape.
- Tips on Setting up Karma Testing with Webpack - Despite the plethora of examples, there are some key bits of information that are not emphasized enough. These tips will help your karma.config.js file to be smaller and easier to understand.
- Blanket.js ANSI-color workaround for Chrome console - Fixing a color display problem to make it easier to see what’s happening.
- Cyclomatic complexity refactoring tips for javascript developers - What is cyclomatic complexity, and practical tips to make your projects maintainable.
A dose of strangeness
- Chicken chicken chicken - Be sure to catch the inspirational video too.
- GOTOs in JavaScript are now possible - JavaScript can transpile from other languages, yet it doesn’t have operator that could be used when generating direct jumps. The solution - implement our own extension with the most EVIL feature ever!
- Project Flux - Confidential time-travel plans from Google.
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**](https://twitter.com/SitePointJS).
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.