SitePoint
Blog
Forum
Library
Login
Join Premium
Toggle sidebar
Professional JavaScript for Web Developers, 4th Edition
Toggle community discussions
Close
Content
Bookmarks
Preface
PROFESSIONAL JavaScript ® for Web Developers
WHAT THIS BOOK COVERS
HOW THIS BOOK IS STRUCTURED
WHAT YOU NEED TO USE THIS BOOK
ABOUT THE AUTHOR
ABOUT THE TECHNICAL EDITORS
ACKNOWLEDGMENTS
WILEY END USER LICENSE AGREEMENT
FOREWORD
INTRODUCTION
WHO THIS BOOK IS FOR
1
What Is JavaScript?
A SHORT HISTORY
JAVASCRIPT IMPLEMENTATIONS
JAVASCRIPT VERSIONS
SUMMARY
JavaScript in HTML
THE ELEMENT
INLINE CODE VERSUS EXTERNAL FILES
DOCUMENT MODES
THE ELEMENT
SUMMARY
Language Basics
SYNTAX
KEYWORDS AND RESERVED WORDS
VARIABLES
DATA TYPES
OPERATORS
STATEMENTS
FUNCTIONS
SUMMARY
Variables, Scope, and Memory
PRIMITIVE AND REFERENCE VALUES
EXECUTION CONTEXT AND SCOPE
GARBAGE COLLECTION
SUMMARY
Basic Reference Types
THE DATE TYPE
THE REGEXP TYPE
PRIMITIVE WRAPPER TYPES
SINGLETON BUILT-IN OBJECTS
SUMMARY
Collection Reference Types
THE OBJECT TYPE
THE ARRAY TYPE
TYPED ARRAYS
THE MAP TYPE
THE WEAKMAP TYPE
THE SET TYPE
THE WEAKSET TYPE
ITERATION AND SPREAD OPERATORS
SUMMARY
Iterators and Generators
INTRODUCTION TO ITERATION
THE ITERATOR PATTERN
GENERATORS
SUMMARY
Objects, Classes, and Object-Oriented Programming
UNDERSTANDING OBJECTS
OBJECT CREATION
INHERITANCE
CLASSES
SUMMARY
Proxies and Reflect
PROXY FUNDAMENTALS
PROXY TRAPS AND REFLECT METHODS
PROXY PATTERNS
SUMMARY
Functions
ARROW FUNCTIONS
FUNCTION NAMES
UNDERSTANDING ARGUMENTS
NO OVERLOADING
DEFAULT PARAMETER VALUES
SPREAD ARGUMENTS AND REST PARAMETERS
FUNCTION DECLARATIONS VERSUS FUNCTION EXPRESSIONS
FUNCTIONS AS VALUES
FUNCTION INTERNALS
FUNCTION PROPERTIES AND METHODS
FUNCTION EXPRESSIONS
RECURSION
TAIL CALL OPTIMIZATION
CLOSURES
IMMEDIATELY INVOKED FUNCTION EXPRESSIONS
PRIVATE VARIABLES
SUMMARY
Promises and Async Functions
INTRODUCTION TO ASYNCHRONOUS PROGRAMMING
PROMISES
ASYNC FUNCTIONS
SUMMARY
The Browser Object Model
THE WINDOW OBJECT
THE LOCATION OBJECT
THE NAVIGATOR OBJECT
THE SCREEN OBJECT
THE HISTORY OBJECT
SUMMARY
Client Detection
CAPABILITY DETECTION
USER-AGENT DETECTION
SOFTWARE AND HARDWARE DETECTION
SUMMARY
The Document Object Model
HIERARCHY OF NODES
WORKING WITH THE DOM
MUTATION OBSERVERS
SUMMARY
DOM Extensions
SELECTORS API
ELEMENT TRAVERSAL
HTML5
PROPRIETARY EXTENSIONS
SUMMARY
DOM Levels 2 and 3
DOM CHANGES
STYLES
TRAVERSALS
RANGES
SUMMARY
Events
EVENT FLOW
EVENT HANDLERS
THE EVENT OBJECT
EVENT TYPES
MEMORY AND PERFORMANCE
SIMULATING EVENTS
SUMMARY
Animation and Graphics with Canvas
USING requestAnimationFrame
BASIC CANVAS USAGE
THE 2D CONTEXT
WEBGL
SUMMARY
Scripting Forms
FORM BASICS
SCRIPTING TEXT BOXES
SCRIPTING SELECT BOXES
FORM SERIALIZATION
RICH TEXT EDITING
SUMMARY
JavaScript APIs
ATOMICS AND SharedArrayBuffer
CROSS-CONTEXT MESSAGING
ENCODING API
BLOB AND FILE APIs
MEDIA ELEMENTS
NATIVE DRAG AND DROP
NOTIFICATIONS API
PAGE VISIBILITY API
STREAMS API
TIMING APIs
WEB COMPONENTS
THE WEB CRYPTOGRAPHY API
SUMMARY
Error Handling and Debugging
BROWSER ERROR REPORTING
ERROR HANDLING
DEBUGGING TECHNIQUES
COMMON LEGACY INTERNET EXPLORER ERRORS
SUMMARY
XML in JavaScript
XML DOM SUPPORT IN BROWSERS
XPATH SUPPORT IN BROWSERS
XSLT SUPPORT IN BROWSERS
SUMMARY
JSON
SYNTAX
PARSING AND SERIALIZATION
SUMMARY
Network Requests and Remote Resources
THE XMLHttpRequest OBJECT
XMLHttpRequest LEVEL 2
PROGRESS EVENTS
CROSS-ORIGIN RESOURCE SHARING
ALTERNATE CROSS-DOMAIN TECHNIQUES
THE FETCH API
THE BEACON API
WEB SOCKETS
SECURITY
SUMMARY
Client-Side Storage
COOKIES
WEB STORAGE
INDEXEDDB
SUMMARY
Modules
UNDERSTANDING THE MODULE PATTERN
IMPROVISING MODULE SYSTEMS
WORKING WITH PRE-ES6 MODULE LOADERS
WORKING WITH ES6 MODULES
SUMMARY
Workers
INTRODUCTION TO WORKERS
DEDICATED WORKERS
SHARED WORKERS
SERVICE WORKERS
SUMMARY
Best Practices
MAINTAINABILITY
PERFORMANCE
DEPLOYMENT
SUMMARY
ES2018 and ES2019
ASYNCHRONOUS ITERATION
REST AND SPREAD OPERATORS FOR OBJECT LITERALS
PROMISE FINALLY() DEFINITION
REGULAR EXPRESSION ENHANCEMENTS
ARRAY FLATTENING METHODS
OBJECT.FROMENTRIES()
STRING TRIMMING METHODS
SYMBOL.PROTOTYPE.DESCRIPTION
OPTIONAL CATCH BINDING
MISCELLANEOUS ENHANCEMENTS
Strict Mode
OPTING-IN
VARIABLES
OBJECTS
FUNCTIONS
eval()
eval AND ARGUMENTS
COERCION OF THIS
CLASSES AND MODULES
OTHER CHANGES
JavaScript Libraries and Frameworks
FRAMEWORKS
GENERAL LIBRARIES
ANIMATION AND EFFECTS
JavaScript Tools
PACKAGE MANAGERS
MODULE LOADERS
MODULE BUNDLERS
COMPILATION/TRANSPILATION TOOLS AND STATIC TYPE SYSTEMS
HIGH-PERFORMANCE SCRIPT TOOLS
EDITORS
BUILD TOOLS, AUTOMATION SYSTEMS, AND TASK RUNNERS
LINTERS AND FORMATTERS
MINIFIERS
UNIT TESTING
DOCUMENTATION GENERATORS
INDEX
Open text modal
Community Questions
Close