Intermediate JavaScript

This course is designed for students who have a firm grasp of the foundation of JavaScript syntax and want to learn how they can take their skills to the next level in progressing into the field of JavaScript Application development.

Today and in foreseeable future modern web development will be used with some form of framework and/or library whether it be run on the server or on the client (browser). Since JavaScript is steadily growing to be the most popular programming language used on the web, it makes the most sense to be the one language you need to learn well.

Every popular JavaScript framework and library (eg. Ember.js, AngularJS, Node.js, BackBone,js, jQuery, etc.) requires significant knowledge of object oriented fundamentals as well as module-view-controller patterns which are two of the main components of being a successful web developer/software engineer today.

Another example of the importance of JavaScript: Almost all of the coding boot camps popping up all over, mainly focus on JavaScript as their programming language of choice in preparing students to become web developers (eg. JavaScript developers and software engineers).

This class will take you through all the key components of understanding how to program in an object-based language and use common practices in helping you learn any JavaScript framework.
    Objectives for this class:
  • Understanding the concept of objects and how to build and use them:
    • Constructors
    • Prototypes
    • Built-in objects
    • Properties and Methods
    • this keyword
    • Inheritance
  • Creating and use JSON objects for data storage and retrieval.
  • What is scope with objects and functions
  • Understanding and using closure
  • Using and understanding the various JavaScript patterns used in modern programming
  • Review of various MVC patterns.
  • Advantages and disadvantages of using a JavaScript framework
  • Review of the popular framework AngularJS and library Underscore.js

Applicable Job Roles: Front-end developer, web developer, JavaScript Engineer

Outline
Week 1: JavaScript Scope
  • JavaScript as a Compiled Language
  • What is Scope?
    • Overview
    • Left and Right References
    • Nested Scope
    • Lexical Scope
  • Module Management
    • Function as Scope
    • Function vs Block Scope
    • Function Member Hiding
    • Anonymous vs Named Functions
    • IIFE
  • Hoisting
  • Scope Closure
Week 2: Objects and Functions part 1
  • Object Oriented Programming Overview:
    • Wrappers
    • Behaviors
    • Getters and Setters
    • Objects Interface
    • Inheritance
  • JavaScript Object Oriented Programming
    • Primitive Types
    • Reference Types
    • De-referencing Objects
  • Objects and Array Literals
  • JSON
    • JavaScript Objects vs JSON
    • Extracting data from JSON
Week 3: Understanding 'this'
  • Class theory
  • More on Prototypes
  • What does ‘this’ really mean?
    • Understanding call site
    • Implicit and explicit binding
Week 4: Objects and Functions part 2
  • Understanding Objects
    • Properties and Methods
    • Enumeration
    • Types of Properties
  • Constructors
  • Prototypes
    • Creating custom
    • Built-in prototypes
    • Advantages over other techniques
    • With inheritance
  • Object inheritance
Week 5: Patterns
  • What is a pattern?
  • Structure of a design pattern
  • Categories of deign patterns
  • JavaScript Design patterns
    • Object literal
    • Function that returns an object
    • Constructor Function
    • Constructor Function with prototype
    • Prototype chain
    • Module pattern
    • Private Members for Constructors
    • Namespaces
Week 6: MV* Patterns Overview
  • Understanding Models, Views and Controls
  • What is templating? (eg. Handlebars.js, Mustache.js)
  • MV* Patterns
    • MVP
    • MVVM
    • Pros and Cons of each
Week 7: AngularJS Overview
  • What is AngularJS?
  • Requirements
  • Benefits
  • Philosophy
  • AngularJS MVC pattern
  • Creating a sample application
Week 8: Underscore.js Overview
  • What is Underscore.js?
  • Useful utility functions
  • Working with JSON examples
Prerequisites
  • Students should have taken the Introduction to JavaScript or have a solid foundation of the JavaScript language.
Requirements
  • A modern browser: Firefox, Chrome or a modern web browser
  • A web host (a free one is fine too!) to post assignments.
Books
  • No Books are required for this class


Additional information:

Your place in the course is confirmed by your payment. Introductory courses are intended for students with no experience in the subject matter and are seeking beginner level training.

Refund Policy: Please read our Terms and Refund Policy before registering for this course.

Additional Cost: Book and software might be required for the course. Read the Requirements and Book section for more information. Course fee does not include the book and software cost .

How eClasses Work:Instructors post lectures (text-based, no video or audio), reading selections, and hands-on assignments once a week in the online classroom. Students can discuss the assignments with the instructor and amongst themselves in the classroom area. This format has no set meeting time, which allows students to attend class at a time most convenient to them, yet still provides logically organized communication between class participants. Students can apply for the completion certificate after finishing the class.

1975

Price: $220.00
WITI Price: $160.00
Course No.: P132
Instructor Frank Stepanski
Co-instructor/TA
CEUs 3
Duration 8 weeks
Cost 50
Open Courses:
- Start Date: Aug 21, 2017
(Register by: Aug 24, 2017)
- Start Date: Sep 18, 2017
(Register by: Sep 21, 2017)
- Start Date: Oct 16, 2017
(Register by: Oct 19, 2017)
- Start Date: Nov 13, 2017
(Register by: Nov 16, 2017)

Testimonials

Instructor's Profile:
InstructorFrank Stepanski has a Masters in software engineering and has over 10 years experience in web development. Frank has worked with technologies such as ASP.NET, SQL Server, PHP, MySQL, as well as HTML, CSS and JavaScript.
Before you register for this class, please read the Outline, Prerequisites, Requirements, Books, and Refund Policy sections carefully.
 

 Testimonials

Ratings
"Lucinda is very encouraging, clear directions and very helpful. I will put the new knowledge soon in practice and I will recommend this course. A big thank you." - Dorothy Wegmueller-Ngudle
"It is a good class, and not without a challenge. If you are serious about learning (more) Javascript, then definitely join in !" - Holly Cornish
"A good class - instructor very helpful if you have questions." - Robert Hoefer
"This was a challenging class for me that I thoroughly enjoyed. Thank you, Lucinda!" - Crystal Hayes
"Though a challenging class for me, Lucinda made the material as clear as possible and explained each student's questions so all could benefit. Her choices for supplementary online readings were excellent too." - Carol Klotz
"Lucinda has to be one of the best instructors out there. She's always helpful and encouraging. She even goes above and beyond what is expected -- offering additional help, solutions, examples and suggestions." - Matthew Moore