Advanced JavaScript Programming (JSC251)
In this Advanced JavaScript Programming training course, you will learn advanced JavaScript techniques that include working with the ECMAScript 2015 (referred to as "ES2015" or "ES6") and ECMAScript 2016 (referred to as "ES2016" or "ES7") releases. The course includes a thorough exploration of advanced objects, arrays, and functions; the XMLHttpRequest (Ajax) API; and working with JSON. Finally, you will learn to handle errors and exceptions and to use regular expressions in JavaScript.
- Learn to recognize/handle scope, including ES2015 techniques for controlling the scope of a variable
- Learn to use prototyping, ES2015 classes, ES2015 modules, and advanced JavaScript objects such as maps and sets
- Learn advanced techniques for working with functions, including default values and flexible arguments, closures, immediately-invoked function expressions (IIFEs), and recursion
- Learn to use advanced array methods and properties
- Learn to use the XMLHttpRequest API to make Ajax calls and techniques for dealing with the same-origin policy
- Learn to use the JSON data format in JavaScript
- Learn to use try/catch/finally for handling errors
- Learn to use regular expressions in JavaScript
- Scope
- Scope in JavaScript
- The var Keyword
- Scope in Nested Functions
- The let Keyword
- Exercise: Scope
- Advanced Objects
- Object-Oriented Programming
- Prototyping
- Objects in JavaScript
- Prototyping in JavaScript
- Composing Prototypes
- Exercise: Prototyping
- ES2015 Classes
- Static Methods
- Exercise: ES2015 Classes & Static Methods
- Inheritance
- Maps
- Map vs Object?
- Sets
- Exercise: Guessing Game with Map and Set
- Modules
- Browser Support for ES2015 Modules
- Module Overview
- Modules Example
- Advanced Functions
- Function Declarations
- Function Expressions
- Default Values
- Flexible Arguments
- Exercise: Flexible Arguments
- Closures
- Exercise: Closures
- Immediately-Invoked Function Expressions (IIFEs)
- Callbacks
- Recursion
- Exercise: Recursion
- Advanced Arrays
- Arrays
- Arrays Methods
- Iterators and Arrow Functions
- Iterators
- Arrow Functions
- Static Array Methods
- Array.isArray()
- Array.from()
- Array.of()
- Array Prototype Methods
- Array.prototype.fill()
- Array.prototype.filter()
- Array.prototype.find()
- Array.prototype.forEach()
- Array.prototype.indexOf()
- Array.prototype.keys()
- Array.prototype.map()
- Array.prototype.reduce()
- Exercise: Find the Mode
- XHR
- XMLHttpRequest
- The XMLHttpRequest Object
- Handling the Response
- Nodejs
- Installing Node.js
- Running Node.js
- A First Node.js Application & Server
- Using the XMLHttpRequest Object
- Exercise: Ajax using the POST method
- The Callback Function
- Exercise: Displaying and Updating Records
- Promises
- CORS/JSONP: Accessing Remote Sites
- CORS
- Exercise: Retrieving Country Info from GeoNames via CORS
- JSONP
- Exercise: Retrieving State Names from Yahoo! with JSONP
- CORS Vs JSONP Differences
- JSON
- JSON
- Review of Object Literals
- Arrays
- Objects
- Arrays in Objects
- Objects in Arrays
- Back to JSON
- JSON Syntax
- JSON Parsers
- Exercise: Using JSON
- Errors and Exceptions
- Runtime Errors
- Completely unhandled errors
- Globally handled errors
- Structured Error Handling
- Throwing custom errors
- Nested Try/Catch
- Exercise: Try/Catch/Finally
- Runtime Errors
- Regular Expressions
- Getting Started
- JavaScript's Regular Expression Methods
- Flags
- String Methods
- Regular Expression Syntax
- Start and End ( ^ $ )
- Number of Occurrences ( ? + * {} )
- Common Characters ( . \d \D \w \W \s \S )
- Grouping ( [] )
- Negation ( ^ )
- Subpatterns ( () )
- Alternatives ( | )
- Escape Character ( \ )
- Backreferences
- Form Validation with Regular Expressions
- Exercise: Advanced Form Validation
- Cleaning Up Form Entries
- Exercise: Cleaning Up Form Entries
- Getting Started
Each student will receive a comprehensive set of materials, including course notes and all the class examples.
Experience in the following is required for this JavaScript class:
- HTML
- Basic JavaScript
Experience in the following would be useful for this JavaScript class:
- CSS
- Basic Ajax
Courses that can help you meet these prerequisites: