Learning JavaScript
From MediaWiki.org
![]() |
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 | edit source]
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 | edit source]
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 | edit source]
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 | edit source]
- 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 | edit source]
- 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 | edit source]
- 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 | edit source]
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 | edit source]
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 | edit source]
- 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 | edit source]
- Web Platform Daily
- Frontend Feeds to Follow, Paul Irish
Coding conventions | |
---|---|
General | All languages · 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 |
Python | Code conventions |
Ruby | Code conventions |
Selenium/Cucumber | Code conventions |
Java | Code conventions |
API client code | Standards for API client libraries |