JavaScript

Book description

All of JavaScript's newest features, in depth, made easy to understand.

JavaScript is a rapidly changing language and it can be challenging to keep up with all the new toys being added. JavaScript: The New Toys explores the newest features of the world's most popular programming language while also showing readers how to track what's coming next. After setting the stage by covering who manages the process of improving JavaScript, how new features get introduced, terminology, and a high-level overview of new features, it details each new or updated item in depth, with example uses, possible pitfalls, and expert recommendations for updating old habits in light of new features.  JavaScript: The New Toys:

  • Covers all the additions to JavaScript in ES2015-ES2020 plus a preview of what's coming next
  • Explores the latest syntax: nullish coalescing, optional chaining, let and const, class syntax, private methods, private fields, new.target, numeric separators, BigInt, destructuring, default parameters, arrow functions, async functions, await, generator functions, ... (rest and spread), template literals, binary and octal literals, ** (exponentiation), computed property/method names, for-of, for-await-of, shorthand properties, and others
  • Details the new features and patterns including modules, promises, iteration, generators, Symbol, Proxy, reflection, typed arrays, Atomics, shared memory, WeakMap, WeakSet, and more
  • Highlights common pitfalls and explains how to avoid them
  • Shows how to follow the improvements process and even participate in the process yourself
  • Explains how to use new features even before they're widely supported

With its comprehensive coverage and friendly, accessible style, JavaScript: The New Toys provides an invaluable resource for programmers everywhere, whether they work in web development, Node.js, Electron, Windows Universal Apps, or another JavaScript environment.

Table of contents

  1. COVER
  2. INTRODUCTION
    1. WHAT DOES THIS BOOK COVER?
    2. WHO SHOULD READ THIS BOOK
    3. HOW TO USE THIS BOOK
    4. HOW TO CONTACT THE AUTHOR
  3. 1 The New Toys in ES2015–ES2020, and Beyond
    1. DEFINITIONS, WHO'S WHO, AND TERMINOLOGY
    2. WHAT ARE THE “NEW TOYS”?
    3. HOW DO NEW TOYS GET CREATED?
    4. KEEPING UP WITH THE NEW TOYS
    5. USING TODAY'S TOYS IN YESTERDAY'S ENVIRONMENTS, AND TOMORROW'S TOYS TODAY
    6. REVIEW
    7. NOTES
  4. 2 Block-Scoped Declarations: let and const
    1. AN INTRODUCTION TO LET AND CONST
    2. TRUE BLOCK SCOPE
    3. REPEATED DECLARATIONS ARE AN ERROR
    4. HOISTING AND THE TEMPORAL DEAD ZONE
    5. A NEW KIND OF GLOBAL
    6. CONST: CONSTANTS FOR JAVASCRIPT
    7. BLOCK SCOPE IN LOOPS
    8. OLD HABITS TO NEW
    9. NOTE
  5. 3 New Function Features
    1. ARROW FUNCTIONS AND LEXICAL THIS, SUPER, ETC.
    2. DEFAULT PARAMETER VALUES
    3. “REST” PARAMETERS
    4. TRAILING COMMAS IN PARAMETER LISTS AND FUNCTION CALLS
    5. THE FUNCTION NAME PROPERTY
    6. FUNCTION DECLARATIONS IN BLOCKS
    7. OLD HABITS TO NEW
  6. 4 Classes
    1. WHAT IS A CLASS?
    2. INTRODUCING THE NEW CLASS SYNTAX
    3. COMPARING WITH THE OLDER SYNTAX
    4. CREATING SUBCLASSES
    5. LEAVING OFF OBJECT.PROTOTYPE
    6. NEW.TARGET
    7. CLASS DECLARATIONS VS. CLASS EXPRESSIONS
    8. MORE TO COME
    9. OLD HABITS TO NEW
    10. NOTES
  7. 5 New Object Features
    1. COMPUTED PROPERTY NAMES
    2. SHORTHAND PROPERTIES
    3. GETTING AND SETTING AN OBJECT'S PROTOTYPE
    4. METHOD SYNTAX, AND SUPER OUTSIDE CLASSES
    5. SYMBOL
    6. NEW OBJECT FUNCTIONS
    7. SYMBOL.TOPRIMITIVE
    8. PROPERTY ORDER
    9. PROPERTY SPREAD SYNTAX
    10. OLD HABITS TO NEW
    11. NOTES
  8. 6 Iterables, Iterators, for-of, Iterable Spread, Generators
    1. ITERATORS, ITERABLES, THE FOR-OF LOOP, AND ITERABLE SPREAD SYNTAX
    2. GENERATOR FUNCTIONS
    3. OLD HABITS TO NEW
    4. NOTES
  9. 7 Destructuring
    1. OVERVIEW
    2. BASIC OBJECT DESTRUCTURING
    3. BASIC ARRAY (AND ITERABLE) DESTRUCTURING
    4. DEFAULTS
    5. REST SYNTAX IN DESTRUCTURING PATTERNS
    6. USING DIFFERENT NAMES
    7. COMPUTED PROPERTY NAMES
    8. NESTED DESTRUCTURING
    9. PARAMETER DESTRUCTURING
    10. DESTRUCTURING IN LOOPS
    11. OLD HABITS TO NEW
    12. NOTES
  10. 8 Promises
    1. WHY PROMISES?
    2. PROMISE FUNDAMENTALS
    3. USING AN EXISTING PROMISE
    4. ADDING HANDLERS TO ALREADY SETTLED PROMISES
    5. CREATING PROMISES
    6. OTHER PROMISE UTILITY METHODS
    7. PROMISE PATTERNS
    8. PROMISE ANTI-PATTERNS
    9. PROMISE SUBCLASSES
    10. OLD HABITS TO NEW
    11. NOTES
  11. 9 Asynchronous Functions, Iterators, and Generators
    1. ASYNC FUNCTIONS
    2. ASYNC ITERATORS, ITERABLES, AND GENERATORS
    3. OLD HABITS TO NEW
    4. NOTES
  12. 10 Templates, Tag Functions, and New String Features
    1. TEMPLATE LITERALS
    2. IMPROVED UNICODE SUPPORT
    3. ITERATION
    4. NEW STRING METHODS
    5. UPDATES TO THE MATCH, SPLIT, SEARCH, AND REPLACE METHODS
    6. OLD HABITS TO NEW
    7. NOTES
  13. 11 New Array Features, Typed Arrays
    1. NEW ARRAY METHODS
    2. ITERATION, SPREAD, DESTRUCTURING
    3. STABLE ARRAY SORT
    4. TYPED ARRAYS
    5. OLD HABITS TO NEW
    6. NOTES
  14. 12 Maps and Sets
    1. MAPS
    2. SETS
    3. WEAKMAPS
    4. WEAKSETS
    5. OLD HABITS TO NEW
    6. NOTES
  15. 13 Modules
    1. INTRODUCTION TO MODULES
    2. MODULE FUNDAMENTALS
    3. RENAMING EXPORTS
    4. RE-EXPORTING EXPORTS FROM ANOTHER MODULE
    5. RENAMING IMPORTS
    6. IMPORTING A MODULE'S NAMESPACE OBJECT
    7. EXPORTING ANOTHER MODULE'S NAMESPACE OBJECT
    8. IMPORTING A MODULE JUST FOR SIDE EFFECTS
    9. IMPORT AND EXPORT ENTRIES
    10. IMPORTS ARE LIVE AND READ-ONLY
    11. MODULE INSTANCES ARE REALM-SPECIFIC
    12. HOW MODULES ARE LOADED
    13. IMPORT/EXPORT SYNTAX REVIEW
    14. DYNAMIC IMPORT
    15. TREE SHAKING
    16. BUNDLING
    17. IMPORT METADATA
    18. WORKER MODULES
    19. OLD HABITS TO NEW
  16. 14 Reflection—Reflect and Proxy
    1. REFLECT
    2. PROXY
    3. OLD HABITS TO NEW
    4. NOTES
  17. 15 Regular Expression Updates
    1. THE FLAGS PROPERTY
    2. NEW FLAGS
    3. NAMED CAPTURE GROUPS
    4. LOOKBEHIND ASSERTIONS
    5. UNICODE FEATURES
    6. OLD HABITS TO NEW
    7. NOTES
  18. 16 Shared Memory
    1. INTRODUCTION
    2. HERE THERE BE DRAGONS!
    3. BROWSER SUPPORT
    4. SHARED MEMORY BASICS
    5. MEMORY IS SHARED, NOT OBJECTS
    6. RACE CONDITIONS, OUT-OF-ORDER STORES, STALE VALUES, TEARING, AND MORE
    7. THE ATOMICS OBJECT
    8. SHARED MEMORY EXAMPLE
    9. HERE THERE BE DRAGONS! (AGAIN)
    10. OLD HABITS TO NEW
    11. NOTES
  19. 17 Miscellany
    1. BIGINT
    2. NEW INTEGER LITERALS
    3. NEW MATH METHODS
    4. EXPONENTIATION OPERATOR (**)
    5. DATE.PROTOTYPE.TOSTRING CHANGE
    6. FUNCTION.PROTOTYPE.TOSTRING CHANGE
    7. NUMBER ADDITIONS
    8. SYMBOL.ISCONCATSPREADABLE
    9. VARIOUS SYNTAX TWEAKS
    10. VARIOUS STANDARD LIBRARY / GLOBAL ADDITIONS
    11. ANNEX B: BROWSER-ONLY FEATURES
    12. TAIL CALL OPTIMIZATION
    13. OLD HABITS TO NEW
    14. NOTES
  20. 18 Upcoming Class Features
    1. PUBLIC AND PRIVATE CLASS FIELDS, METHODS, AND ACCESSORS
    2. OLD HABITS TO NEW
    3. NOTES
  21. 19 A Look Ahead …
    1. TOP-LEVEL AWAIT
    2. WEAKREFS AND CLEANUP CALLBACKS
    3. REGEXP MATCH INDICES
    4. STRING.PROTOTYPE.REPLACEALL
    5. ATOMICS ASYNCWAIT
    6. VARIOUS SYNTAX TWEAKS
    7. LEGACY DEPRECATED REGEXP FEATURES
    8. THANK YOU FOR READING!
    9. NOTES
  22. APPENDIX: Fantastic Features and Where to Find ThemFantastic Features and Where to Find Them
    1. FEATURES IN ALPHABETICAL ORDER
    2. NEW FUNDAMENTALS
    3. NEW SYNTAX, KEYWORDS, OPERATORS, LOOPS, AND SIMILAR
    4. NEW LITERAL FORMS
    5. STANDARD LIBRARY ADDITIONS AND CHANGES
    6. MISCELLANEOUS
  23. INDEX
  24. END USER LICENSE AGREEMENT

Product information

  • Title: JavaScript
  • Author(s): T. J. Crowder
  • Release date: July 2020
  • Publisher(s): Wrox
  • ISBN: 9781119367956