Introduction to ES2019 JavaScript

2-Day Course Taught Live as In-Person or Online

Course Description

Training 4 Developers’ Comprehensive ES2019 JavaScript training class teaches attendees how to build rich client-side web applications using HTML, CSS, and JavaScript. Students develop real-world JavaScript applications and learn how to use modern JavaScript programming techniques with an emphasis on core JavaScript concepts, and the latest JavaScript syntax features. This class is for developers with no JavaScript experience and legacy JavaScript knowledge (pre-2015). Also, this class is for developers who want to prepare to learn how to create UIs using popular and modern JavaScript libraries such as React, Angular & Vue.js.

JavaScript concepts that are covered include prototype inheritance, closures, immutable programming, asynchronous programming, event loop, imperative vs. declarative programming, and functional programming. JavaScript syntax features include arrow functions, classes, spread and rest operators, destructuring, modules, async/await, etc.

Course ObjectivesObjectives

  • Develop real-world JavaScript applications
  • Use objects, arrays, functions, modules to build JavaScript applications
  • Create JavaScript applications using functional programming
  • Use prototype inheritance, closures, callbacks, modules, immutable programming, declarative programming
  • Employ classes, arrow functions, spread and rest operators, destructuring, ES2015 modules, async/await
  • Use JSON to send and receive data

Course PrerequisitesPrerequisites

Attendees should have a good working knowledge of HTML, CSS and web development. Also, students should have general programming experience.

Course RequirementsRequirements

We teach all classes online using Zoom. Students will need to be able to join a Zoom session. We recommend that each student have two displays. One display to view the instructor presentation and one display to use for note-taking and coding along with the instructor. All course materials are distributed via GitHub and Google Drive. Access to those services is needed for the class, please ensure your firewall and network policies will allow students to access those resources.

Course OutlineOutline

  1. Getting Started
    1. ECMAScript and JavaScript Introduction
    2. Types
    3. Variable Declarations (var, const & let)
    4. Primitive Types (number, string, boolean)
    5. JavaScript Memory Structure
  2. Functions, Arrays & Objects
    1. Function Declarations and Expressions
    2. Arrow Syntax
    3. Value of “this” and function types (call-site this and lexical this)
    4. Function Arguments and Parameters
    5. Spread and Rest Operators and Functions
    6. Functions as Objects
    7. Arrays and Array Literal Syntax
    8. Array API
    9. Immutable Operations with Arrays
    10. Array Destructuring and Spread/Rest Operators
    11. Objects and Object Literal Syntax
    12. Shorthand Properties
    13. Property Descriptors including Getter/Setter properties
    14. Object API
    15. Object Destructuring and Spread/Rest Operators
    16. Object Extending, Sealing and Freezing
  3. Classes & Prototype Inheritance
    1. What is Prototype Inheritance?
    2. Prototype Inheritance contrasted against Classical Inheritance
    3. Exploring Getting and Setting properties on a Prototype Chain
    4. Enumerating Properties and its Relationship to Prototype Inheritance
    5. Using Classes to Build Objects and Setup Prototype Inheritance
    6. Historical Comparison to Function Constructors
    7. Static Properties
  4. Asynchronous Programming
    1. Role of JavaScript in a Web Browser and Node.js
    2. What is Non-Blocking, Asynchronous Programming
    3. Event Loop and JavaScript Tasks
    4. Understanding Closures
    5. Role of Closures in Asynchronous Programming
    6. Using Callbacks and Problems with Callbacks
    7. Using Promises
    8. Overview of XHR and Fetch APIs
    9. Making AJAX Calls with JavaScript
    10. Async/Await API
  5. Modules
    1. Overview of JavaScript Module Systems
    2. Compare/Contrast AMD, CommonJS and ES2015 Modules
    3. Static Nature of ES2015 Modules and Tree Shaking
    4. Import/Export Syntax
    5. Named Imports vs. Default Imports
    6. Using Modules with Web Browser
    7. Using Modules with Parcel.js
  6. Web Browser API
    1. Querying DOM Elements
    2. Create/Modify/Remove DOM Elements
    3. XHR & Fetch APIs
    4. Timers
Scroll to Top