Head First JavaScript

Head First JavaScript