Notes and Exercises from Professional JavaScript for Web Developers  (3rd Edition) by Nick Zakas