FOREWORD xliii
INTRODUCTION xlv
CHAPTER 1: WHAT IS JAVASCRIPT? 1
CHAPTER 2: JAVASCRIPT IN HTML 9
CHAPTER 3: LANGUAGE BASICS 19
CHAPTER 4: VARIABLES, SCOPE, AND MEMORY 97
CHAPTER 5: BASIC REFERENCE TYPES 119
CHAPTER 6: ADVANCED REFERENCE TYPES 159
CHAPTER 7: ITERATORS AND GENERATORS 217
CHAPTER 8: OBJECTS, CLASSES, AND OBJECT'ORIENTED PROGRAMMING 251
CHAPTER 9: PROXIES AND REFLECT 323
CHAPTER 10: FUNCTIONS 349
CHAPTER 11: PROMISES AND ASYNC/AWAIT 383
CHAPTER 12: THE BROWSER OBJECT MODEL 435
CHAPTER 13: THE DOCUMENT OBJECT MODEL 459
CHAPTER 14: DOM EXTENSIONS 507
CHAPTER 15: EVENTS 557
CHAPTER 16: ANIMATION AND GRAPHICS WITH CANVAS 609
CHAPTER 17: SCRIPTING FORMS 645
CHAPTER 18: JAVASCRIPT APIs 675
CHAPTER 19: ERROR HANDLING AND DEBUGGING 765
CHAPTER 20: JSON 791
CHAPTER 21: NETWORK REQUESTS AND REMOTE RESOURCES 801
CHAPTER 22: CLIENT'SIDE STORAGE 839
CHAPTER 23: MODULES 861
CHAPTER 24: WORKERS 887
CHAPTER 25: BEST PRACTICES 955
APPENDIX A: ES.NEXT 987
APPENDIX B: STRICT MODE 991
APPENDIX C: JAVASCRIPT LIBRARIES AND FRAMEWORKS 999
APPENDIX D: JAVASCRIPT TOOLS 1005
INDEX 1017