Learning JavaScript
From MediaWiki.org
(Redirected from JavaScript performance)
| For the essay that used to be here, view revision #468751 of this page page. |
Below is reference material about JavaScript that is recommended for learning about performance, good practices and advanced patterns.
Basics[edit]
Just got started learning to program, or want to start now? Then these may be more relevant for you instead.
| Title | Author | Date | Link |
|---|---|---|---|
| Code.org | Code.org | start here » | |
| jQuery Code School | jQuery Foundation / Code School | 2014 | start here » |
| jQuery Learning Center | jQuery Foundation | read it » | |
| Learn Programming | Khan Academy | 2014 | start here » |
| Learn Web Fundamentals | Codecademy | 2013 | start here » |
Intermediate[edit]
| Title | Author | Date | Link |
|---|---|---|---|
| You Don't Know JS | Kyle Simpson | 2014 | read it » |
| Fixing These jQuery (Debugging front-end applications) | adam j. sontag | 2010 | start here » |
| Maintainable JavaScript (Fluent Conference) | Nicholas C. Zakas | 2012-05 | watch it » |
Advanced[edit]
| Title | Author | Date | Link |
|---|---|---|---|
| JavaScript in general and the DOM | |||
| JavaScript: The Good Parts (Google Tech Talk) | Douglas Crockford | 2009-02-27 | watch it » |
| Crockford on JavaScript (8-part series at YUI Theater) | Douglas Crockford | 2011-11 | watch it: on YouTube • YUI Blog |
| The JavaScript Trilogy (3-part series at YUI Theater) | Douglas Crockford | 2011-08 | watch it » |
| The Lazy Programmer's Guide to Secure Computing | Marc Stiegler | 2010-03 | watch it » |
| Good JavaScript Habits | Mike Hostetler | 2011-04 | watch it » |
| How Good C# Habits can Encourage Bad JavaScript Habits | Mike Hostetler | 2010-10 | read it » |
| Speed Up Your JavaScript (Google Tech Talk) | Nicholas C. Zakas | 2009-06-04 | watch it » |
| jQuery | |||
| jQuery Anti-Patterns for Performance | Paul Irish | 2009-11-11 | watch it » |
| 10 Advanced jQuery performance tuning tips | Jon Raasch | 2009-11-19 | read it » |
| Learning to code like jQuery codes internally | Paul Irish | 2010-06-14 | watch it » |
| More things to learn from jQuery's internals | Paul Irish | 2011-01-19 | watch it » |
Performance optimization[edit]
- 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).
Client-specific optimizations[edit]
- Jank Free, a collection of "must-see" resources to pinpoint bottlenecks, and eliminate stuttering from animations and scroll rendering.
- "Not optimized" warnings explained (2014), Paul Irish, Chrome Dev Tools
Profiling[edit]
- Chrome's timeline feature: File:Demonstration of Chromium's 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[edit]
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
Documentation[edit]
Check out DevDocs. It aggregates documentation for APIs of DOM, CSS, JavaScript, Node.js, and many popular JS libraries, to one central place with a unified interface. Many of its pages are streamed from the Mozilla Developer Network.
Further reading[edit]
- superherojs.com: Collection of great articles, videos and presentations. Learn about developing, testing and maintaining a large JavaScript code base.
Staying up to date[edit]
- Web Platform Daily
- Frontend Feeds to Follow, Paul Irish
| Coding conventions | |
|---|---|
| General | All languages· Development policy · Security for developers · Pre-commit checklist · Performance guidelines (draft) · Style guide · Accessibility guide for developers (draft) |
| PHP | Code conventions · PHPUnit test conventions · Security checklist for developers |
| JavaScript | Code conventions · Learning JavaScript |
| CSS | Code conventions |
| Database | Code conventions· Database policy |
| Python | Code conventions |
| Ruby | Code conventions |
| Selenium/Cucumber | Code conventions |
| Java | Code conventions |
| API client code | Standards for API client libraries |

