Learning JavaScript

Below is reference material about JavaScript that is recommended for learning about performance, good practices and advanced patterns.

Basics
Just got started learning to program, or want to start now? Then these may be more relevant for you instead.

Performance optimisation

 * Optimization killers in V8: Pitfalls the bluebird library encountered.
 * Grokking V8 closures for fun (and profit?) (September 2012), @mraleph. See http://mrale.ph/ for more resources that give a good understanding of how V8 optimizations work internally.
 * v8-perf: Notes, slides and videos about inner workings of V8 (including GC and JIT).
 * "Not optimized" warnings explained (2014), Paul Irish, Chrome Dev Tools

Profiling

 * Chrome's timeline feature: Demonstration_of_Chromium%27s_timeline_feature.webm
 * chrome2calltree allows you to use the excellent KCachegrind profile viewer, which has call graphs, relative call frequency, grouping by file & other useful features. It works with profiles generated by V8, including Chrome.
 * nodegrind makes it really easy to profile node projects by just calling 'nodegrind script.js' instead of 'node script.js'. It produces KCachegrind-compatible output.

ECMAScript 6
Learn about the next version of the ECMAScript standard (which JavaScript implements).


 * ES6-learning: An overview of resources about ES6.
 * New OOP features in ES6 (December 2014), Dr. Axel Rauschmayer