JavaScript Resources
June 1, 2016 · View on GitHub
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
Expert Guidance
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.
Highest Recommendation
Other Recommended Options
Articles & Discussions
- 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
Books & Reference
These resources are more static in nature and provide a great foundation for your JavaScript learning.
Highest Recommendation
Other Recommended Options
- Crockford on JavaScript
- Google JavaScript Style Guide
- JavaScript Garden
- JavaScript Interview Questions
- wtfjs
Coding: Debugging
These tools help you find problems in your code.
Highest Recommendation
Other Recommended Options
Coding: Documenting
These tools help document your code
Highest Recommendation
Other Recommended Options
Coding: Optimizing
Everyone wants a high performing site or app. These libraries will assist you in that quest.
Highest Recommendation
Other Recommended Options
Articles & Discussions
- 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
Coding: Sharing
These sites make it easy to test out, demonstrate, or just share your code with others.
Highest Recommendation
Other Recommended Options
Coding: Testing
From unit tests to regression tests to code coverage tests and everything inbetween, these tools have you covered.
Highest Recommendation
Other Recommended Options
Articles & Discussions
Core Libs: Full Featured
These libraries have been around forever and are very desktop centric. The highest recommendation will be no surprise to anyone.
Highest Recommendation
Other Recommended Options
Core Libs: Lightweight
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.
Highest Recommendation
- 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.
Other Recommended Options
Core Libs: Mobile
These libraries may rely on their desktop counterparts (e.g., jQuery Mobile), or are mobile-only replacement libraries (e.g., Sencha Touch)
Highest Recommendation
- None - there are no solutions that I would give the highest recommendation to at this point.
Other Recommended Options
Core Libs: MVC Frameworks
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.
Highest Recommendation
- AngularJS
- Backbone.js
- Dependency for Backbone.js: Underscore.js
Other Recommended Options
Core Libs: Templating
These libraries enable client-side templating.
Highest Recommendation
Other Recommended Options
Libraries: Charting
Whether you need a basic pie chart, or a complex financial graph, one of these libraries is likely to fit the bill.
Highest Recommendation
Other Recommended Options
Libraries: Dynamic Loading
These libraries are used to dynamically load JavaScript modules, CSS files, or other web assets.
Highest Recommendation
Other Recommended Options
Libraries: Feature Detection
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.
Highest Recommendation
Other Recommended Options
Libraries: Mapping
Whether you need a basic pie chart, or a complex financial graph, one of these libraries is likely to fit the bill.
Highest Recommendation
- OpenStreetMap, in conjunction with:
Other Recommended Options
Libraries: Messaging
These libraries give you the plumbing you need to implement client-side messaging methodologies, such as pubsub.
Highest Recommendation
Other Recommended Options
Libraries: Touch Interface
These libraries enable support for touch devices by handling taps, double taps, swipes, gestures, and more.
Highest Recommendation
Other Recommended Options
Server-side JS
There really is just one platform you need to know about: Node.js. The other links are either node modules or module loaders.