JavaScript Books and Resources

Books

Head First JavaScript Programming
Eric T Freeman & Elisabeth Robson, O'Reilly, 2014, ISBN: 978-1-4493-4013-1
If you like the artistic, visual approach of the Head First series, this fulfills that approach for JavaScript
Head First JQuery
Ryan Bendetti & Ronan Cranley, O'Reilly, 2012, ISBN: 978-1-449-39321-2
This book extends the JavaScript approach of Head First JavaScript Programming into the JQuery framework
JavaScript: The Definitive Guide
David Flanagan, O'Reilly, 2011, ISBN:978-0-596-80552-4
Example Code website: oreilly.com/catalog/9780596805531
Note: 7th edition should be released in 2020
This is a classic reference work, and will be preferred by those who like comprehensive references
JavaScript: The Good Parts
Douglas Crockford, O'Reilly, 2008, 978-0-596-51774-8
Crockford's JavaScript web site: javascript.crockford.com
This book prescribes certain practices that make programming JavaScript safer. Several of the coding conventions for our course originated with this work
Modern JavaScript: Develop and Design
Larry Ullman, Peachpit Press, 2012, 978-0321812520
Eloquent JavaScript
Marjin Haverbeke, eloquentjavascript.net
A few examples for the course have their origin here. Probably not a first book, but worth a read. Available online for browsing
Professional JavaScript for Web Developers
Nicholas C. Zakas, Wrox, 2012, 978-1118026694

More Advanced Books

Here are a couple of books that I've found interesting and relevant:

Professor Frisby's Mostly Adequate Guide to Functional Programming
github.com/MostlyAdequate
mostly-adequate.gitbooks.io/mostly-adequate-guide
This is a fun read and introduction to the principles of functional programming, an underpinning of JavaScript
The first reference is to the GitHub source for the book; pre-compiled versions are available at the second source
D3 for the Impatient
Philipp K. Janert, O'Reilly, 2019
D3 (d3js.org) is a JavaScript library which aids in transforming data to display graphically in the DOM.
This book uses examples and a relatively recent release of D3 to explore how to use D3 to achieve wonderful displays.

For those interested in more in-depth exploration, there is a series of O'Reilly books released by Kyle Simpson. These can help you explore the concepts of JavaScript in a way that will enhance your understanding:

You Don't Know JS: Scope & Closures
O'Reilly, March 2014
You Don't Know JS: this & Object Prototypes
O'Reilly, July 2014
You Don't Know JS: Types & Grammar
O'Reilly, September 2014
You Don't Know JS: Asynch & Performance
O'Reilly, October 2014
You Don't Know JS: ES6 & Beyond
O'Reilly, March 2015
You Don't Know JS: Up & Going
O'Reilly, April 2015

Resources: Websites

ECMAscript website
ecmascript.org
The current standard in PDF is linked right off the home page
Mozilla Developer's Network
https://developer.mozilla.org/en/javascript
JQuery website
www.jquery.com
API documentation is at jqapi.com
JQueryUI website
www.jqueryui.com

Resources: JavaScript Libraries and Frameworks

Modernizr
Javascript library testing for browser features to allow for fallback in older browsers modernizr.com
Angular
MVC-enablement for your HTML pageangularjs.org
Backbone
JavaScript models, collections, and views. backbonejs.org

Resources: IDEs and editors

Eclipse IDE
IDE for code development, including JavaScript: eclipse.org
Netbeans IDE
IDE for code development, including JavaScript: netbeans.org
WebStorm IDE
JetBrains IDE for JavaScript: www.jetbrains.com/webstorm. Commercial, but students get special consideration.
Aptana Studio 3 IDE
IDE for Javascript, PHP, and Ruby on Rails code development. Also available as an Eclipse plugin. www.aptana.com
Adobe Brackets editor
Language-aware text editor: brackets.io
Sublime Text
Language-aware editor with some debugging and browser abilities: www.sublimetext.com
($80 license for continuing use)

Resources: JavaScript as a server

Node
nodejs.org
NPM - node package management
npmjs.com

Resources: Code Checking and Beautification

JSLint (Online)
JavaScript compiler written in JavaScript to evaluate your JavaScript. JSLint.com
node-jslint (node app)
Locally installed version of jslint, install with npm
JSHint (online)
JavaScript evaluator gentler and kinder than JSLint JSHint.com
jshint (node app)
Locally installed version of JSHint, install with npm
CodeBeautify.org (Online)
Online code beautifier and checker
codebeautify.org/jsvalidate
beautifier (Online)
JavaScript code beautifier
beautifier.io
js-beautify (node app)
Locally installed JavaScript beautifier, install with npm
minifycode (Online)
Beautifies JavaScript or minifies it
minifycode.com/javascript-beautifier

Resources: Sharing JavaScript Snippets

JSFiddle
Edit and view JavaScript examples and share them with others. JSFiddle.net
Codepen
Edit and view JavaScript examples and share them with others. codepen.io
jsbin
Edit and view JavaScript examples and share them with others jsbin.com

Slides

Access through course materials.