SitePoint
Blog
Forum
Library
Login
Join Premium
Toggle sidebar
JavaScript: The New Toys
Toggle community discussions
Close
Content
Bookmarks
Preface
Javascript: The New Toys
INTRODUCTION
WHAT DOES THIS BOOK COVER?
WHO SHOULD READ THIS BOOK
HOW TO USE THIS BOOK
HOW TO CONTACT THE AUTHOR
1
The New Toys in ES2015 - ES2020, and Beyond
CODE DOWNLOADS FOR THIS CHAPTER
DEFINITIONS, WHO'S WHO, AND TERMINOLOGY
WHAT ARE THE “NEW TOYS”?
HOW DO NEW TOYS GET CREATED?
KEEPING UP WITH THE NEW TOYS
USING TODAY'S TOYS IN YESTERDAY'S ENVIRONMENTS, AND TOMORROW'S TOYS TODAY
USING NODE.JS TO RUN EXAMPLES
REVIEW
Block-Scoped Declarations: let and const
CODE DOWNLOADS FOR THIS CHAPTER
AN INTRODUCTION TO LET AND CONST
TRUE BLOCK SCOPE
REPEATED DECLARATIONS ARE AN ERROR
HOISTING AND THE TEMPORAL DEAD ZONE
A NEW KIND OF GLOBAL
ACCESSING THE GLOBAL OBJECT
CONST: CONSTANTS FOR JAVASCRIPT
BLOCK SCOPE IN LOOPS
OLD HABITS TO NEW
New Function Features
CODE DOWNLOADS FOR THIS CHAPTER
PARAMETER VS. ARGUMENT
ARROW FUNCTIONS AND LEXICAL THIS, SUPER, ETC.
WARNING: THE COMMA OPERATOR AND ARROW FUNCTIONS
DEFAULT PARAMETER VALUES
NON-SIMPLE PARAMETER LISTS AND CHANGING STRICT MODE
“REST” PARAMETERS
TRAILING COMMAS IN PARAMETER LISTS AND FUNCTION CALLS
THE FUNCTION NAME PROPERTY
FUNCTION DECLARATIONS IN BLOCKS
OLD HABITS TO NEW
Classes
CODE DOWNLOADS FOR THIS CHAPTER
WHAT IS A CLASS?
INTRODUCING THE NEW CLASS SYNTAX
COMPARING WITH THE OLDER SYNTAX
CREATING SUBCLASSES
LEAVING OFF OBJECT.PROTOTYPE
NEW.TARGET
CLASS DECLARATIONS VS. CLASS EXPRESSIONS
MORE TO COME
OLD HABITS TO NEW
New Object Features
CODE DOWNLOADS FOR THIS CHAPTER
COMPUTED PROPERTY NAMES
SHORTHAND PROPERTIES
GETTING AND SETTING AN OBJECT'S PROTOTYPE
METHOD SYNTAX, AND SUPER OUTSIDE CLASSES
SYMBOL
“NAME” OR “KEY”?
NEW OBJECT FUNCTIONS
SYMBOL.TOPRIMITIVE
PROPERTY ORDER
A MYTH OF ARRAYS
PROPERTY SPREAD SYNTAX
OLD HABITS TO NEW
Iterables, Iterators, for-of, Iterable Spread, Generators
CODE DOWNLOADS FOR THIS CHAPTER
ITERATORS, ITERABLES, THE FOR-OF LOOP, AND ITERABLE SPREAD SYNTAX
ERRORS WHEN THINGS AREN’T ITERABLE
GENERATOR FUNCTIONS
CONTEXT-SENSITIVE KEYWORDS
OLD HABITS TO NEW
Destructuring
CODE DOWNLOADS FOR THIS CHAPTER
OVERVIEW
BASIC OBJECT DESTRUCTURING
BASIC ARRAY (AND ITERABLE) DESTRUCTURING
DEFAULTS
“FALSY” AND “TRUTHY”
REST SYNTAX IN DESTRUCTURING PATTERNS
USING DIFFERENT NAMES
COMPUTED PROPERTY NAMES
NESTED DESTRUCTURING
PARAMETER DESTRUCTURING
DESTRUCTURING IN LOOPS
OLD HABITS TO NEW
Promises
CODE DOWNLOADS FOR THIS CHAPTER
WHY PROMISES?
PROMISE FUNDAMENTALS
ERRORS AS REJECTION REASONS
USING AN EXISTING PROMISE
HANDLERS ARE JUST FUNCTIONS
DETECTING UNHANDLED REJECTIONS
BOTH OF THEN'S ARGUMENTS ARE OPTIONAL
ADDING HANDLERS TO ALREADY SETTLED PROMISES
SCRIPT JOBS AND PROMISE JOBS
CREATING PROMISES
OTHER PROMISE UTILITY METHODS
PROMISE PATTERNS
PROMISE ANTI-PATTERNS
PROMISE SUBCLASSES
OLD HABITS TO NEW
Asynchronous Functions, Iterators, and Generators
CODE DOWNLOADS FOR THIS CHAPTER
ASYNC FUNCTIONS
SINGLE THREAD PER REALM
ASYNC FUNCTION CALLS AT THE TOP LEVEL
ASYNC ITERATORS, ITERABLES, AND GENERATORS
HOW TO GET %AsyncIteratorPrototype%
OLD HABITS TO NEW
Templates, Tag Functions, and New String Features
WROX.COM CODE DOWNLOADS FOR THIS CHAPTER
TEMPLATE LITERALS
INVALID ESCAPE SEQUENCES IN TEMPLATE LITERALS
IMPROVED UNICODE SUPPORT
ITERATION
NEW STRING METHODS
UPDATES TO THE MATCH, SPLIT, SEARCH, AND REPLACE METHODS
OLD HABITS TO NEW
New Array Features, Typed Arrays
CODE DOWNLOADS FOR THIS CHAPTER
NEW ARRAY METHODS
THE COPYWITHIN RETURN VALUE
ITERATION, SPREAD, DESTRUCTURING
STABLE ARRAY SORT
TYPED ARRAYS
MODULO VS. REMAINDER
OLD HABITS TO NEW
Maps and Sets
WROX.COM CODE DOWNLOADS FOR THIS CHAPTER
MAPS
SETS
WEAKMAPS
PRIVATE CLASS FIELDS
WEAKSETS
OLD HABITS TO NEW
Modules
CODE DOWNLOADS FOR THIS CHAPTER
INTRODUCTION TO MODULES
MODULE FUNDAMENTALS
EXPORTING AN ANONYMOUS FUNCTION OR CLASS DECLARATION
CHANGES BETWEEN V8 THROUGH V11 AND V12 AND ABOVE
RENAMING EXPORTS
RE-EXPORTING EXPORTS FROM ANOTHER MODULE
RENAMING IMPORTS
IMPORTING A MODULE'S NAMESPACE OBJECT
EXPORTING ANOTHER MODULE'S NAMESPACE OBJECT
IMPORTING A MODULE JUST FOR SIDE EFFECTS
IMPORT AND EXPORT ENTRIES
IMPORTS ARE LIVE AND READ-ONLY
MODULE NAMESPACE OBJECT PROPERTY DESCRIPTIONS
MODULE INSTANCES ARE REALM-SPECIFIC
HOW MODULES ARE LOADED
IMPORT/EXPORT SYNTAX REVIEW
DYNAMIC IMPORT
TREE SHAKING
BUNDLING
IMPORT METADATA
WORKER MODULES
OLD HABITS TO NEW
Reflection - Reflect and Proxy
CODE DOWNLOADS FOR THIS CHAPTER
REFLECT
PROXY
OLD HABITS TO NEW
Regular Expression Updates
CODE DOWNLOADS FOR THIS CHAPTER
THE FLAGS PROPERTY
NEW FLAGS
NAMED CAPTURE GROUPS
LOOKBEHIND ASSERTIONS
UNICODE FEATURES
OLD HABITS TO NEW
Shared Memory
CODE DOWNLOADS FOR THIS CHAPTER
INTRODUCTION
HERE THERE BE DRAGONS!
BROWSER SUPPORT
SHARED MEMORY BASICS
MEMORY IS SHARED, NOT OBJECTS
RACE CONDITIONS, OUT-OF-ORDER STORES, STALE VALUES, TEARING, AND MORE
THE ATOMICS OBJECT
“ATOMIC”?
SHARED MEMORY EXAMPLE
HERE THERE BE DRAGONS! (AGAIN)
OLD HABITS TO NEW
Miscellany
CODE DOWNLOADS FOR THIS CHAPTER
BIGINT
NEW INTEGER LITERALS
NEW MATH METHODS
EXPONENTIATION OPERATOR (**)
DATE.PROTOTYPE.TOSTRING CHANGE
FUNCTION.PROTOTYPE.TOSTRING CHANGE
NUMBER ADDITIONS
SYMBOL.ISCONCATSPREADABLE
VARIOUS SYNTAX TWEAKS
VARIOUS STANDARD LIBRARY / GLOBAL ADDITIONS
ANNEX B: BROWSER-ONLY FEATURES
TAIL CALL OPTIMIZATION
OLD HABITS TO NEW
Upcoming Class Features
CODE DOWNLOADS FOR THIS CHAPTER
PUBLIC AND PRIVATE CLASS FIELDS, METHODS, AND ACCESSORS
“PUBLIC FIELD” VS. “PROPERTY”
THE “SHAPE” OF AN OBJECT, AND SHAPE CHANGES
ARROW FUNCTIONS IN INITIALIZERS
HOW PRIVATE METHODS ARE LINKED TO OBJECTS
PRIVATE IDENTIFIERS MUST BE UNIQUE IN THE CLASS
OLD HABITS TO NEW
NOTES
A Look Ahead ...
CODE DOWNLOADS FOR THIS CHAPTER
STAGE 3 PROPOSALS MAY CHANGE
TOP-LEVEL AWAIT
INSTALLING V8
WEAKREFS AND CLEANUP CALLBACKS
WEAKREFS AND CLEANUP CALLBACKS ARE ADVANCED FEATURES
REGEXP MATCH INDICES
STRING.PROTOTYPE.REPLACEALL
ATOMICS ASYNCWAIT
VARIOUS SYNTAX TWEAKS
LEGACY DEPRECATED REGEXP FEATURES
THANK YOU FOR READING!
Appendix
FEATURES IN ALPHABETICAL ORDER
NEW FUNDAMENTALS
NEW SYNTAX, KEYWORDS, OPERATORS, LOOPS, AND SIMILAR
NEW LITERAL FORMS
STANDARD LIBRARY ADDITIONS AND CHANGES
MISCELLANEOUS
Index
Symbols
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
W
X–Y–Z
WILEY END USER LICENSE AGREEMENT
Open text modal
Community Questions
Close