Understanding ECMAScript 6 : the definitive guide for JavaScript developers /
Understanding ECMAScript 6 is your roadmap to the new object types, syntax, and other exciting features in the latest version of JavaScript.
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
San Francisco :
No Starch Press,
[2016]
|
Temas: | |
Acceso en línea: | Texto completo (Requiere registro previo con correo institucional) |
Tabla de Contenidos:
- Intro
- Title Page
- Copyright Page
- About the Author
- About the Technical Reviewer
- Brief Contents
- Contents in Detail
- Foreword
- Acknowledgments
- Introduction
- The Road to ECMAScript 6
- About This Book
- Browser and Node.js Compatibility
- Who This Book Is For
- Overview
- Conventions Used
- Help and Support
- Chapter 1: Block Bindings
- var Declarations and Hoisting
- Block-Level Declarations
- let Declarations
- No Redeclaration
- const Declarations
- The Temporal Dead Zone
- Block Bindings in Loops
- Functions in Loops
- let Declarations in Loops
- const Declarations in Loops
- Global Block Bindings
- Emerging Best Practices for Block Bindings
- Summary
- Chapter 2: Strings and Regular Expressions
- Better Unicode Support
- UTF-16 Code Points
- The codePointAt() Method
- The String.fromCodePoint() Method
- The normalize() Method
- The Regular Expression u Flag
- Other String Changes
- Methods for Identifying Substrings
- The repeat() Method
- Other Regular Expression Changes
- The Regular Expression y Flag
- Duplicating Regular Expressions
- The flags Property
- Template Literals
- Basic Syntax
- Multiline Strings
- Making Substitutions
- Tagged Templates
- Summary
- Chapter 3: Functions
- Functions with Default Parameter Values
- Simulating Default Parameter Values in ECMAScript 5
- Default Parameter Values in ECMAScript 6
- How Default Parameter Values Affect the arguments Object
- Default Parameter Expressions
- Default Parameter TDZ
- Working with Unnamed Parameters
- Unnamed Parameters in ECMAScript 5
- Rest Parameters
- Increased Capabilities of the Function Constructor
- The Spread Operator
- The name Property
- Choosing Appropriate Names
- Special Cases of the name Property
- Clarifying the Dual Purpose of Functions.
- Determining How a Function Was Called in ECMAScript 5
- The new.target Metaproperty
- Block-Level Functions
- Deciding When to Use Block-Level Functions
- Block-Level Functions in Non-Strict Mode
- Arrow Functions
- Arrow Function Syntax
- Creating Immediately Invoked Function Expressions
- No this Binding
- Arrow Functions and Arrays
- No arguments Binding
- Identifying Arrow Functions
- Tail Call Optimization
- How Tail Calls Are Different in ECMAScript 6
- How to Harness Tail Call Optimization
- Summary
- Chapter 4: Expanded Object Functionality
- Object Categories
- Object Literal Syntax Extensions
- Property Initializer Shorthand
- Concise Methods
- Computed Property Names
- New Methods
- The Object.is() Method
- The Object.assign() Method
- Duplicate Object Literal Properties
- Own Property Enumeration Order
- Enhancements for Prototypes
- Changing an Object's Prototype
- Easy Prototype Access with Super References
- A Formal Method Definition
- Summary
- Chapter 5: Destructuring for Easier Data Access
- Why Is Destructuring Useful?
- Object Destructuring
- Destructuring Assignment
- Default Values
- Assigning to Different Local Variable Names
- Nested Object Destructuring
- Array Destructuring
- Destructuring Assignment
- Default Values
- Nested Array Destructuring
- Rest Items
- Mixed Destructuring
- Destructured Parameters
- Destructured Parameters Are Required
- Default Values for Destructured Parameters
- Summary
- Chapter 6: Symbols and Symbol Properties
- Creating Symbols
- Using Symbols
- Sharing Symbols
- Symbol Coercion
- Retrieving Symbol Properties
- Exposing Internal Operations with Well-Known Symbols
- The Symbol.hasInstance Method
- The Symbol.isConcatSpreadable Property
- The Symbol.match, Symbol.replace, Symbol.search, and Symbol.split Properties.
- The Symbol.toPrimitive Method
- The Symbol.toStringTag Property
- The Symbol.unscopables Property
- Summary
- Chapter 7: Sets and Maps
- Sets and Maps in ECMAScript 5
- Problems with Workarounds
- Sets in ECMAScript 6
- Creating Sets and Adding Items
- Removing Items
- The forEach() Method for Sets
- Converting a Set to an Array
- Weak Sets
- Maps in ECMAScript 6
- Map Methods
- Map Initialization
- The forEach() Method for Maps
- Weak Maps
- Summary
- Chapter 8: Iterators and Generators
- The Loop Problem
- What Are Iterators?
- What Are Generators?
- Generator Function Expressions
- Generator Object Methods
- Iterables and for-of Loops
- Accessing the Default Iterator
- Creating Iterables
- Built-In Iterators
- Collection Iterators
- String Iterators
- NodeList Iterators
- The Spread Operator and Nonarray Iterables
- Advanced Iterator Functionality
- Passing Arguments to Iterators
- Throwing Errors in Iterators
- Generator Return Statements
- Delegating Generators
- Asynchronous Task Running
- A Simple Task Runner
- Task Running with Data
- An Asynchronous Task Runner
- Summary
- Chapter 9: Introducing JavaScript Classes
- Class-Like Structures in ECMAScript 5
- Class Declarations
- A Basic Class Declaration
- Why Use the Class Syntax?
- Class Expressions
- A Basic Class Expression
- Named Class Expressions
- Classes as First-Class Citizens
- Accessor Properties
- Computed Member Names
- Generator Methods
- Static Members
- Inheritance with Derived Classes
- Shadowing Class Methods
- Inherited Static Members
- Derived Classes from Expressions
- Inheriting from Built-Ins
- The Symbol.species Property
- Using new.target in Class Constructors
- Summary
- Chapter 10: Improved Array Capabilities
- Creating Arrays
- The Array.of() Method
- The Array.from() Method.
- New Methods on All Arrays
- The find() and findIndex() Methods
- The fill() Method
- The copyWithin() Method
- Typed Arrays
- Numeric Data Types
- Array Buffers
- Manipulating Array Buffers with Views
- Similarities Between Typed and Regular Arrays
- Common Methods
- The Same Iterators
- The of() and from() Methods
- Differences Between Typed and Regular Arrays
- Behavioral Differences
- Missing Methods
- Additional Methods
- Summary
- Chapter 11: Promises and Asynchronous Programming
- Asynchronous Programming Background
- The Event Model
- The Callback Pattern
- Promise Basics
- The Promise Life Cycle
- Creating Unsettled Promises
- Creating Settled Promises
- Executor Errors
- Global Promise Rejection Handling
- Node.js Rejection Handling
- Browser Rejection Handling
- Chaining Promises
- Catching Errors
- Returning Values in Promise Chains
- Returning Promises in Promise Chains
- Responding to Multiple Promises
- The Promise.all() Method
- The Promise.race() Method
- Inheriting from Promises
- Promise-Based Asynchronous Task Running
- Summary
- Chapter 12: Proxies and the Reflection API
- The Array Problem
- Introducing Proxies and Reflection
- Creating a Simple Proxy
- Validating Properties Using the set Trap
- Object Shape Validation Using the get Trap
- Hiding Property Existence Using the has Trap
- Preventing Property Deletion with the deleteProperty Trap
- Prototype Proxy Traps
- How Prototype Proxy Traps Work
- Why Two Sets of Methods?
- Object Extensibility Traps
- Two Basic Examples
- Duplicate Extensibility Methods
- Property Descriptor Traps
- Blocking Object.defineProperty()
- Descriptor Object Restrictions
- Duplicate Descriptor Methods
- The ownKeys Trap
- Function Proxies with the apply and construct Traps
- Validating Function Parameters
- Calling Constructors Without new.
- Overriding Abstract Base Class Constructors
- Callable Class Constructors
- Revocable Proxies
- Solving the Array Problem
- Detecting Array Indexes
- Increasing length When Adding New Elements
- Deleting Elements When Reducing length
- Implementing the MyArray Class
- Using a Proxy as a Prototype
- Using the get Trap on a Prototype
- Using the set Trap on a Prototype
- Using the has Trap on a Prototype
- Proxies as Prototypes on Classes
- Summary
- Chapter 13: Encapsulating Code with Modules
- What Are Modules?
- Basic Exporting
- Basic Importing
- Importing a Single Binding
- Importing Multiple Bindings
- Importing an Entire Module
- A Subtle Quirk of Imported Bindings
- Renaming Exports and Imports
- Default Values in Modules
- Exporting Default Values
- Importing Default Values
- Re-exporting a Binding
- Importing Without Bindings
- Loading Modules
- Using Modules in Web Browsers
- Browser Module Specifier Resolution
- Summary
- Appendix A: Minor Changes in ECMAScript 6
- Working with Integers
- Identifying Integers
- Safe Integers
- New Math Methods
- Unicode Identifiers
- Formalizing the __proto__ Property
- Appendix B: Understanding ECMAScript 7 (2016)
- The Exponentiation Operator
- Order of Operations
- Operand Restriction
- The Array.prototype.includes() Method
- How to Use Array.prototype.includes()
- Value Comparison
- A Change to Function-Scoped Strict Mode
- Index
- The Electronic Frontier Foundation (EFF)
- Updates
- Level Up Your JavaScript.