# JavaScript Programming Bootcamp (Self-Paced)

Canonical URL: <https://www.nobledesktop.com/classes/javascript-programming-fundamentals-self-paced>

## Overview

Today's web applications need to handle huge volumes of fast-moving data without breaking a sweat. So how does JavaScript pull that off? In this course, you'll explore how JavaScript actually works and start coding web applications of your own.

## What you'll learn

- JavaScript programming fundamentals from the ground up, including variables, conditional logic (if-else), arrays, objects, and loops
- The latest ES6 and ES7 features such as arrow functions, let, and const
- Functions, parameters, arguments, return values, plus higher-level functions and callbacks
- Array methods, string methods, and parsing JSON (JavaScript Object Notation) data
- Asynchronous JavaScript using promises and async-await
- APIs (Application Programming Interfaces) and JavaScript libraries
- OOP (Object-Oriented Programming) and modules
- Coding interview challenge prep alongside projects and portfolio development

## Prerequisites

Students should feel comfortable coding HTML and basic CSS. You should have knowledge equivalent to our [Web Development Level 1](/classes/coding-classes-new-york-city-nyc) class.

## Curriculum

#### 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

## Pricing

**Tuition:** $2495
