Professional JavaScript
In-depth knowledge of JavaScript makes it easier to learn a variety of other frameworks, including React, Angular, and related tools and libraries. This course is designed to help you cover the core JavaScript concepts you need to build modern applications.
You’ll start by learning how to represent an HTML document in the Document Object Model (DOM). Next, you'll combine your knowledge of the DOM and Node.js to create a web scraper for practical situations. As you cover further chapters, you'll create a Node.js-based RESTful API using the Express Library for Node.js. You'll also understand how modular designs can be used for better reusability and collaboration with multiple developers on a single project. Later chapters will guide you through building unit tests, which ensure that the core functionality of your program is not affected over time. The course will also demonstrate how constructors, async/await, and events can load your applications quickly and efficiently. Finally, you’ll gain useful insights into functional programming concepts such as immutability, pure functions, and higher-order functions.
By the end of this course, you'll have the skills you need to tackle any real-world JavaScript development problem using a modern JavaScript approach, both for client and server sides.After completing this course, you will be able to:
- Apply the core concepts of functional programming
- Build a Node.js project that uses the Express.js library to host an API
- Create unit tests for a Node.js project to validate it
- Use the Cheerio library with Node.js to create a basic web scraper
- Develop a React interface to build processing flows
- Use callbacks as a basic way to bring control back
We also recommend that you have the following software installed in advance:
- Git latest version
- Node.js 10.16.3 LTS (https://nodejs.org/en/)
For the optimal student experience, we recommend the following hardware configuration:
- Processor: Intel Core i5 or equivalent
- Memory: 4 GB RAM
- Storage: 5 GB available space
Lesson 1: JavaScript, HTML, and the DOM
HTML and the DOM
Developer Tools
Lesson 2: Node.js and npm
What is Node.js?
Node Version Manager (nvm)
Node Package Manager (npm)
Lesson 3: Node.js APIs and Web Scraping
Globals
FileSystem APIs
HTTP APIs
What is Scraping?
Lesson 4: RESTful APIs with Node.js
What is an API?
What is REST?
Useful Defaults and Easy Inputs
Middleware
The Contents of a JWT
MongoDB
Lesson 5: Modular JavaScript
ES6 Modules
Object-Oriented Programming (OOP)
npm Package
Lesson 6: Code Quality
Clear Naming
Unit Tests
Integration Tests
End-to-End Testing
Puppeteer
Lesson 7: Advanced JavaScript
Language Features Supported in ES5, ES6, ES7, ES8, and ES9
OOP in JavaScript
Sorting
Maps and Sets
Math, Date, and String
Symbols, Iterators, Generators, and Proxies
Lesson 8: Asynchronous Programming
Callback Hell
Async and Await
Lesson 9: Event-Driven Programming and Built-In Modules
Eventing
Node.js Built-In Modules
Handling Large Files in Node.js
Lesson 10: Functional Programming with JavaScript
Functions – First-Class Citizens
Pure Functions
Higher-Order Functions
Function Composition
Immutability and Side Effects
Introduction to GraphQL Language Schemas and Queries