Advanced JavaScript
Modern Web Apps are programs that are experienced in a browser. We need to use a mix of HTML5, Ajax and advanced JavaScript techniques and libraries to get us there.
Node, Angular, React, React Native, Vue, and similar frameworks demand a deep understanding of JavaScript for developers to be successful in them. This 5-day course is specifically designed to build the foundations needed for students to code in them.
This interesting and intensely practical hands-on workshop is designed to equip you to write JavaScript in a way that is robust, scalable, dynamic, elegant, and safe. We focus on modern techniques and practices that will stretch even experienced JavaScript developers but we keep them within the grasp of devs who may consider themselves JavaScript novices.
PREREQUISITES
Basic understanding of HTML and how the web works. Programming experience in JavaScript and an understanding of basic JavaScript language elements.
Upon completion of this course, the student will be able to:
- Explain modern tooling environments like webpack, npm, yarn, eslint and successfully set up a continuous integration system (CIS)
- Write well-organized and properly structured JavaScript modules
- Write and run unit tests on their JavaScript with Jasmine/Jest and Karma
- Handle multi-threading in JavaScript with promises and async/await
- Begin applying JavaScript frameworks like React, Angular, and Vue in a more extensible, robust, scalable, and safer way.
- Explain MVC architectures
- Consume a RESTful API with Ajax using the fetch API
Intro to JavaScript
- Just enough JavaScript to write a (if, while, for, comments)
Intro to NodeJS
- How to write and run a Node script
Debugging JavaScript
- Browser-based tools
- Formatting the console
- Why you should never use alert()
Tooling
- Why have tooling?
- npm and yarn
- eslint and jslint
- transpilers
- webpack
Unit testing JavaScript
- Writing and running unit tests
- TDD/BDD
- Karmine and Jasmine
Operators
- Arithmetic
- Auto-operators
- Logical operators
- Truthy and falsy
- Short-circuiting
Functional JavaScript
- Variadicity
- Pure vs. impure functions
- Function statements
- Function expressions
- Arrow functions
- Rest operator
- Default parameters
Object-oriented JavaScript
- Functional JavaScript object-oriented JavaScript – Which should I choose?
- How prototypal inheritance is different to traditional inheritance
- Classes
- Constructors
- get() and set()
- Classless objects
- Property shorthands
Understanding execution context
- How invocation changes “this”
- call(), apply(), bind()
- How arrow functions affect context
Variables
- let, var, and const — When to use each
- How hoisting works
- How to control hoisting
- Destructuring
- Easy string templates with `${}`
Arrays in JavaScript
- Typed arrays
- Iterating arrays
- for-in vs. for-of
- The spread operator
- How to spread arrays
- Array.prototype.*
- forEach()
- reduce()
- map()
- filter()
- some() and every()
Modules with JavaScript
- How to get it supported in all browsers
- requireJS
- import
- export vs export default
- IIFEs
- Library integration
Asynchronous JavaScript
- Multithreading
- How the event loop works
- Promises
- Async and await
Modern JavaScript with ES2015-ES2018 and beyond
- TC39 and how JavaScript evolves
- The newest capabilities of JS
- Experimental features
- What’s coming in the future?
Working with the DOM
- What is the DOM?
- Querying the DOM
- Wiring up raw event handlers
- Altering the DOM for dynamic views
- Why we’d use Angular, React, Vue
Ajax
- Making RESTful calls
- JSON
- stringify() and parse()
- XMLHttpRequest
- The fetch API
Is there a discount available for current students?
UMBC students and alumni, as well as students who have previously taken a public training course with UMBC Training Centers are eligible for a 10% discount, capped at $250. Please provide a copy of your UMBC student ID or an unofficial transcript or the name of the UMBC Training Centers course you have completed. Asynchronous courses are excluded from this offer.
What is the cancellation and refund policy?
Student will receive a refund of paid registration fees only if UMBC Training Centers receives a notice of cancellation at least 10 business days prior to the class start date for classes or the exam date for exams.