Learn JavaScript programming essentials for creating web applications, including variables, conditional logic, functions, DOM manipulation, arrays, loops, async events, APIs, OOP, and 3D libraries. This hands-on course aims to prepare students for work on practical web design projects.
Overview
Syllabus
Variables
- Strings, numbers, booleans; var vs let
- NaN, Number() method, null, error messages
- Nested quotes string concatenation / Interpolation
- Math object, math operators, random numbers
Conditional Logic
- If / else if / else; block scoped variables
- Nested logic; truthy / falsey values
- Ternary expressions; switch-case-break
- Date-Object; the “new” keyword
Functions and the DOM (Document Object Model)
- Function parameters / arguments; return values
- DOM (Document Object Model) events
- DOM Project: Log In form
- DOM Project: Restaurant Bill Calculator form
- DOM Project: Signup form
- Hoisting; function expressions; anonymous functions
- DOM Project: Apartment Rent Estimator form
- Keyboard events; setting CSS with JS
- DOM Project: Mystery Number Guessing Game
Arrays and Objects
- Arrays: item index; nested arrays
- Objects: the “const” keyword; properties; nested objects
- Array Methods: push(), pop(), sort(), splice(), et al
- String methods: replace(), includes(), charAt(), et al
Loops
- For Loops; iterating (looping) arrays
- Looping Arrays of Objects
- While / Do While Loops, Nested Loops
- DOM Project: Making deck of cards & dealing hand
- Passing arrays to functions
- Classic Coding Interview Questions / Challenges
Creating DOM Elements Dynamically
- Creating elements: createElement(), appendChild()
- DOM Project: Chinese Zodiac Animals; Audio()
- DOM Project: Password Generator
- DOM Project: Lottery Ticket Generator
- Dynamically adding properties to Arrays of objects
- DOM Project: Sort Movies by Title, Year and Duration
Array Callbacks & Arrow Functions
- Callbacks: Functions that take functions as arguments
- Array Callback Methods: map(), filter(); method chaining
- Arrow => Functions
- forEach() method, instead of a for loop
- reduce() method
Timer for Calling Functions and Animation
- setInterval() runs a callback function repeatedly on a delay
- setTimeout() runs a callback function once only on a delay
- DOM Project: Update Digital Clock every Second
- DOM Project: Coffee Site with Animated “Clock-Guy” Hands
- DOM Project: Deal Hands of Poker & Blackjack on Timer
Asynchronous Events & APIs
- Synchronous vs Asynchronous Events
- JSON (JavaScript Object Notation); parse & stringify
- DOM Project: Lyric Search API; Promises
- DOM Project: Cryptocurrency Prices API; Async-Await
- Adding a Search Box to Website to Filter API Request
OOP (Object Oriented Programming)
- Function Objects; Prototype
- “Class” keyword; constructor() method; private vs public
- DOM Project: OOP Memory Game, Pt 1
- DOM Project: OOP Memory Game, Pt 2
- Modules: Exporting and Importing Classes
JavaScript 3D Libraries
- D3: For 3D Data Visualization, Pt 1
- D3: For 3D Data Visualization, Pt 2
- 3D in the browser with ThreeJS, Pt 1
- 3D in the browser with ThreeJS, Pt 2
- 3D in the browser with ThreeJS, Pt 3
Taught by
Dan Rodney, Brian McClain, Scott Carson, and Colin Jaffe