0%

Book Description

Update your skill set for ES 6 and 7 with the ultimate JavaScript guide for pros

Professional JavaScript for Web Developers is the essential guide to next-level JavaScript development. Written for intermediate-to-advanced programmers, this book jumps right into the technical details to help you clean up your code and become a more sophisticated JavaScript developer. From JavaScript-specific object-oriented programming and inheritance, to combining JavaScript with HTML and other markup languages, expert instruction walks you through the fundamentals and beyond. This new fourth edition has been updated to cover ECMAScript 6 and 7 (also known as ES2015 and ES2016) and the major re-imagination and departure from ES 5.1; new frameworks and libraries, new techniques, new testing tools, and more are explained in detail for the professional developer, with a practical focus that helps you put your new skills to work on real-world projects.

The latest—and most dramatic—ES release is already being incorporated into JavaScript engines in major browsers; this, coupled with the rise in mobile web traffic increasing demand for responsive, dynamic web design, means that all web developers need to update their skills—and this book is your ideal resource for quick, relevant guidance.

  • Get up to date with ECMAScript 6 and 7, new frameworks, and new libraries
  • Delve into web animation, emerging APIs, and build systems
  • Test more effectively with mocks, unit tests, functional tests, and other tools
  • Plan your builds for future ES releases

Even if you think you know JavaScript, new ES releases bring big changes that will affect the way you work. For a professional-level update that doesn't waste time on coding fundamentals, Professional JavaScript for Web Developers is the ultimate resource to bring you up to speed.

Table of Contents

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