Below, you will find:
- Expert Guidance
- Books & Reference
- Coding: Debugging ・ Documenting ・ Optimizing ・ Sharing ・ Testing
- Core Libraries: Full Featured ・ Lightweight ・ Mobile ・ MVC Frameworks ・ Templating
- Other Libraries: Charting ・ Dynamic Loading ・ Feature Detection ・ Mapping ・ Messaging ・ Touch Interface
- Server-side JS
These sites are the best of the best at providing compelling, current content on the JavaScript language, patterns, coding techniques, sample code, and/or interesting libraries.
- A re-introduction to JavaScript
- Choosing JavaScript Module Dependency Syntax
- Essential JavaScript Namespacing Patterns
- Learning JavaScript Design Patterns
- JavaScript Module Pattern: In-Depth
- JavaScript Programming Patterns
- JS Better Faster
- Patterns for modules and namespaces in JavaScript
- The JavaScript Module Pattern
- Why I don't love JavaScript's Module Pattern
These resources are more static in nature and provide a great foundation for your JavaScript learning.
- Crockford on JavaScript
- Google JavaScript Style Guide
- JavaScript Garden
- JavaScript Interview Questions
- wtfjs
These tools help you find problems in your code.
These tools help document your code
Everyone wants a high performing site or app. These libraries will assist you in that quest.
- Best Practices for a Faster Web App
- Cache them if you can
- Mobile Web & HTML5
- Scalable web apps: the complexity issue
- Scaling Your JavaScript Applications
These sites make it easy to test out, demonstrate, or just share your code with others.
From unit tests to regression tests to code coverage tests and everything inbetween, these tools have you covered.
These libraries have been around forever and are very desktop centric. The highest recommendation will be no surprise to anyone.
These libraries were created with mobile in mind, as they are very lightweight and give you all the features that most people use the full featured libraries for.
- None - at this point, I see no reason not to use jQuery in lieu of any of these libs. After compression and gzipping, there is not a sizable difference in size. And zepto.js has shown to be brittle in the past with various os and browser upgrades.
These libraries may rely on their desktop counterparts (e.g., jQuery Mobile), or are mobile-only replacement libraries (e.g., Sencha Touch)
- None - there are no solutions that I would give the highest recommendation to at this point.
These frameworks offer the basics (e.g., backbone.js), or are extensive and prescriptive (e.g., ember.js). Regardless, all exist to provide a clean separation between the interface, its interactions, and the data model.
- AngularJS
- Backbone.js
- Dependency for Backbone.js: Underscore.js
These libraries enable client-side templating.
Whether you need a basic pie chart, or a complex financial graph, one of these libraries is likely to fit the bill.
These libraries are used to dynamically load JavaScript modules, CSS files, or other web assets.
These libraries determine device/browser capabilities based on their feature support. In addition, they provide polyfills (fallback support) for many cases where features are not natively supported.
Whether you need a basic pie chart, or a complex financial graph, one of these libraries is likely to fit the bill.
- OpenStreetMap, in conjunction with:
These libraries give you the plumbing you need to implement client-side messaging methodologies, such as pubsub.
These libraries enable support for touch devices by handling taps, double taps, swipes, gestures, and more.
There really is just one platform you need to know about: Node.js. The other links are either node modules or module loaders.