Advanced JavaScript

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Author(s): Zachary Shute
Edition: 1
Publisher: Packt
Year: 2019

Language: English
Pages: 330

Table of Contents
Preface
Introducing ECMAScript 6
Introduction
Beginning with ECMAScript
Understanding Scope
Function Scope
Function Scope Hoisting
Block Scope
Exercise 1: Implementing Block Scope
Declaring Variables
Exercise 2: Utilizing Variables
Introducing Arrow Functions
Exercise 3: Converting Arrow Functions
Arrow Function Syntax
Exercise 4: Upgrading Arrow Functions
Learning Template Literals
Exercise 5: Converting to Template Literals
Exercise 6: Template Literal Conversion
Enhanced Object Properties
Object Properties
Function Declarations
Computed Properties
Exercise 7: Implementing Enhanced Object Properties
Destructuring Assignment
Array Destructuring
Exercise 8: Array Destructuring
Rest and Spread Operators
Object Destructuring
Exercise 9: Object Destructuring
Exercise 10: Nested Destructuring
Exercise 11: Implementing Destructuring
Classes and Modules
Classes
Exercise 12: Creating Your Own Class
Classes – Subclasses
Modules
Export Keyword
Import Keyword
Exercise 13: Implementing Classes
Transpilation
Babel- Transpiling
Exercise 14: Transpiling ES6 Code
Iterators and Generators
Iterators
Generators
Exercise 15: Creating a Generator
Activity 1: Implementing Generators
Summary
Asynchronous JavaScript
Introduction
Asynchronous Programming
Sync Versus Async
Synchronous versus Asynchronous Timing
Introducing Event Loops
Stack
Heap and Event Queue
Event Loops
Things to Consider
Exercise 16: Handling the Stack with an Event Loop
Callbacks
Building Callbacks
Callback Pitfalls
Fixing Callback Hell
Exercise 17: Working with Callbacks
Promises
Promises States
Resolving or Rejecting a Promise
Using Promises
Exercise 18: Creating and Resolving Your First Promise
Handling Promises
Promise Chaining
Promises and Callbacks
Wrapping Promises in Callbacks
Exercise 19: Working with Promises
Async/Await
Async/Await Syntax
Asnyc/Await Promise Rejection
Using Async Await
Activity 2: Using Async/Await
Summary
DOM Manipulation and Event Handling
Introduction
DOM Chaining, Navigation, and Manipulation
Exercise 20: Building the HTML Document from a DOM Tree Structure
DOM Navigation
Finding a DOM Node
Traversing the DOM
DOM Manipulation
Updating Nodes in the DOM
Updating Nodes in the DOM
Exercise 21: DOM Manipulation
DOM Events and Event Objects
DOM Event
Event Listeners
Event Objects and Handling Events
Event Propagation
Firing Events
Exercise 22: Handling Your First Event
Custom Events
Exercise 23: Handling and Delegating Events
JQuery
jQuery Basics
jQuery Selector
jQuery DOM Manipulation
Selecting Elements
Traversing the DOM
Modifying the DOM
Chaining
jQuery Events
Firing Events
Custom Events
Activity 3: Implementing jQuery
Summary
Testing JavaScript
Introduction
Testing
Reasons to Test Code
Test-driven Development
TDD Cycle
Conclusion
Exercise 24: Applying Test-Driven Development
Types of Testing
Black Box and White Box Testing
Unit Tests
Exercise 25: Building Unit Tests
Functional Testing
Integration Tests
Building Tests
Exercise 26: Writing Tests
Test Tools and Environments
Testing Frameworks
Mocha
Setting Up Mocha
Mocha Basics
Exercise 27: Setting Up a Mocha Testing Environment
Mocha Async
Mocha Hooks
Activity 4: Utilizing Test Environments
Summary
Functional Programming
Introduction
Introducing Functional Programming
Object-Oriented Programming
Functional Programming
Declarative Versus Imperative
Imperative Functions
Declarative Functions
Exercise 28: Building Imperative and Declarative Functions
Pure Functions
Same Output Given Same Input
No Side Effects
Referential Transparency
Exercise 29: Building Pure Controllers
Higher Order Functions
Exercise 30: Editing Object Arrays
Shared State
Exercise 31: Fixing Shared States
Immutability
Immutability in JavaScript
Side Effects
Avoiding Side Effects
Function Composition
Activity 5: Recursive Immutability
Summary
The JavaScript Ecosystem
Introduction
JavaScript Ecosystem
Frontend JavaScript
Command-Line Interface
Mobile Development
Backend Development
Node.js
Setting Up Node.js
Node Package Manager
Loading and Creating Modules
Exercise 32: Exporting and Importing NPM Modules
Basic Node.js Server
Exercise 33: Creating a Basic HTTP Server
Streams and Pipes
Types of Streams
Writeable Stream Events:
Readable Stream Events:
Filesystem Operations
Express Server
Exercise 34: Creating a Basic Express Server
Routing
Advanced Routing
Middleware
Error Handling
Exercise 35: Building a Backend with Node.js
React
Installing React
React Basics
React Specifics
JSX
ReactDOM
React.Component
State
Conditional Rendering
List of Items
HTML Forms
Activity 6: Building a Frontend with React
Summary
Appendix
Index