A few people have asked me lately about books and other resources related to JavaScript. I’ve decided to list them here for reference.
JavaScript Books:
There are many books about JavaScript. Some of them are better than others. Here is a list of books I read and recommend:
- JavaScript: The Good Parts by Douglas Crockford
- Eloquent JavaScript: A Modern Introduction to Programming by Marijn Haverbeke
- JavaScript patterns by Stoyan Stefanov
- Essential JS Design Patterns by Addy Osmani
Blogs about JavaScript:
- http://javascript.crockford.com by Douglas Crockford (a lot of interesting topics)
- http://dmitrysoshnikov.com/ by Dmitry Soshnikov (fantastic overview of ECMA-262 implementation and more)
- http://perfectionkills.com/ by kangax (exploring javascript by example)
- http://javascriptweblog.wordpress.com/ by Angus Croll (a lot of JS topics usually with great examples)
- http://www.adequatelygood.com/ by Ben Cherry
- http://ejohn.org/category/blog/ by John Resig
- http://mir.aculo.us/ by Thomas Fuchs
Websites about JavaScript:
- JavaScript Garden: http://bonsaiden.github.com/JavaScript-Garden (this is a good resource but please also see the feedback about it here)
- DailyJS http://dailyjs.com (every day you can see what’s new in JavaScript world)
- JavaScript Weekly http://javascriptweekly.com
- Annotated ECMAScript 5.1 http://es5.github.com
- Badass JavaScript http://badassjs.com
Mailing Lists:
- JSMentors: http://jsmentors.com (discussion of JavaScript, mentoring, code reviews)
Client-Side JavaScript Frameworks and Tools:
Frameworks come into many flavors (monolithic, hybrid, micro) and different people advocate for different approaches. You can read more on the topic here: http://mir.aculo.us/2011/04/11/i-for-one-welcome-our-new-micro-framework-overlords/ and here: http://tomdale.net/2011/04/imagine-a-beowulf-cluster-of-javascript-frameworks/ and choose your side or just use the best tool for the job :).
- Backone.js http://documentcloud.github.com/backbone/ (model centric, evented based)
- Spine http://maccman.github.com/spine
- MicroJS http://microjs.com (collection of small tools and libraries)
- Sproutcore http://www.sproutcore.com (version 2.0 is more a hybrid approach)
- EmberJS http://emberjs.com
- ZeptoJS http://zeptojs.com (micro framework which follows jQuery API and targets mobile webkit)
- KnockoutJS http://knockoutjs.com (Model - View - View Model approach)
- Angular http://angularjs.org (another hybrid with some interesting patterns behind it)
Online JavaScript Tools:
- JSFiddle http://jsfiddle.net (a playground for web developers)
- JSLint http://www.jslint.com (The JavaScript Code Quality Tool)
- JSHint http://jshint.org
- JSONLint http://jsonlint.com (JSON validator)
- jsPerf http://jsperf.com (JavaScript performance playground)
So there you have it. I’ve been collecting these materials for a while now. This list is not set in stone and I’m curious if you found some other resources worth mentioning. I’m collecting a similar list related to Node.js and CoffeeScript which I may share in the future.
- michal