Book of Javascript

Learning resources to accompany my Book of Javascript

The Book of Javascript online resources are still a work in progress. Sorry, patience required

Errata

There are some corrections for the printed edition of the book. Please update your copy!

Chapter 1 - Introduction to Javascript

  • Getting Javascript up and running
  • 1.1 - Numeric calculations
  • 1.2 - Numeric variables
  • 1.3 - String variables
  • 1.4 - User input
  • 1.5 - Converting between numbers and strings
  • 1.6 - Comparing values
  • 1.7 - Making decisions with "if"
  • 1.8 - Repeating instructions with "while"
  • 1.9 - Making a list
  • 1.10 - Looping through a list
  • 1.11 - Other list functionality
  • 1.12 - Dates and times
  • 1.13 - Functions
  • 1.14 - Callbacks
  • 1.15 - JSON
  • 1.16 - Promises and using fetch
  • 1.17 - Classes

Chapter 2 - HTML

  • 2.1 - Introduction to HTML
  • 2.2 - A tags
  • 2.3 - DIV, SPAN tags
  • 2.4 - IMG, VIDEO, AUDIO tags
  • 2.5 - FORM tags
  • 2.6 - Lists
  • 2.7 - Tables

Chapter 3 - CSS

  • 3.1 - Selectors
  • 3.2 - Boiler plate
  • 3.3 - Basic styling
  • 3.4 - Showing/hiding items
  • 3.5 - Grid layout
  • 3.6 - Drop down menus
  • 3.7 - Styling form elements
  • 3.8 - Icons
  • 3.9 - Styling tables

Chapter 4 - Javascript exercises with HTML & CSS

  • 4.1 - Document object model functions & properties
  • 4.2 - Event handlers
  • 4.3 - Basic form tasks (validation, send)
  • 4.4 - Uploading files
  • 4.5 - Local storage

Chapter 5 - Firebase

Chapter 6 - Canvas

  • 6.1 - Coordinate system
  • 6.2 - Hello canvas!
  • 6.3 - Drawing basic shapes
  • 6.4 - Using colour
  • 6.5 - Displaying text
  • 6.6 - Keyboard events
  • 6.7 - Mouse events
  • 6.8 - Drawing an image
  • 6.9 - Playing a sound
  • 6.10 - Detecting collisions

Reference guides & valuable links

Some summary guides that might be useful.

Official documentation from the Mozilla developer network

Get copies of the MDN documents offline:

Project ideas

2016/17 archive

I used Javascript as the basis to the introduction to programming I taught Year 11 Digital Design in 2016/17. Here is an archived copy of the course notes. I'd change quite a few things if I was to teach this again, but feel free to use it for whatever value you can extract from it.