Introduction to JavaScript
CLASS DATE(s):
Request a Class

COURSE LENGTH: 3 Days

COURSE COST: $1495

COURSE TIMES: 9:00am - 4:30pm

Printable version of this course
print

COURSE OVERVIEW

This course teaches the fundamentals of JavaScript, the language of the Web. The material of the course covers everything you need to know to become proficient using JavaScript. You will learn JavaScript's core elements, as well as some popular JavaScript libraries, such as jQuery, Underscore and others. The course also covers such topics as JavaScript best practices, program debugging and testing.

  • JavaScript fundamentals
  • Working with various popular JavaScript libraries (Underscore, jQuery, etc.)
  • AJAX
  • Testing JavaScript
  • JavaScript performance
  • JavaScript best practices

AUDIENCE AND PREREQUISITES

Web Designers and Developers

Participants should have the general knowledge of the front-end web development

  

*Course Cost listed does not include the cost of courseware (required). Course is subject to a minimum enrollment to run. If minimum enrollment is not met, this course may run as a virtual instrctor led. If you have any questions, please contact us (learn@vtec.org or 207-775-0244)

COURSE TOPICS:


Chapter 1: Introduction to JavaScript
What JavaScript Is and Is Not
Not All JavaScripts are Created Equal ...
ECMAScript Language and Specification
What JavaScript Can and Cannot Do
JavaScript on the Server-side
Elements of JavaScript
Values, Variables and Functions
Embedded Scripts
External Scripts
Browser Dialog Boxes
What is AJAX?
Summary

Chapter 2: JavaScript Fundamentals
Variables
JavaScript Reserved Words
Dynamic Types
JavaScript Strings
Escaping Control Characters
What is False in JavaScript?
The Number Object
JavaScript Objects
Operators
Primitive Values vs Objects
Loops
Functions

Chapter 3: JavaScript DOM API
What is DOM?
Element Hierarchy
DOM Standardization
The Document Object
Nodes and Elements
The Element Object
Element Event Handlers
The Window Object
The Frame Object
The History Object

Chapter 4: JavaScript Functions
Functions Defined, Declared, and Arguments
Return Values
Multiple Return Values in ECMAScript 6
Optional Default Parameter Values
Emulating Optional Default Parameter Values
Anonymous Function Expressions
Functions as a Way to Create Private Scope
Linking Functions to Page Elements
Local and Global Variables
Declaring Object Methods
The arguments Parameter
Example of Using arguments Parameter

Chapter 5: JavaScript Arrays
Arrays Defined
Creating an Array
The length Array Member
Traversing an Array
Appending to an Array
Deleting Elements
Inserting Elements
Other Array Methods
Accessing Objects as Arrays

Chapter 6. Using Underscore JavaScript Library
What and Why Use Underscore.js
Underscore Functional Categories
Functional Programming
Imperative Programming in JavaScript
The JavaScript Map Examples
Collections Functions
The Arrays Category Functions
The union Arrays Function
The difference Arrays Function
The Objects Category Functions
The Utility Category Functions

Chapter 7. Advanced Objects and Functionality In JavaScript
Basic Objects
Constructor Function
Object Properties
Namespace
Functions are First-Class Objects
Closures
Immediately Invoked Function Expression (IIFE)
Inheritance in JavaScript
Prototype Chain
Traversing Prototype Property Hierarchy
Improving Constructor Performance
The hasOwnProperty Method

Chapter 8. jQuery Overview
How to Use jQuery
Benefits of Using a JavaScript Library
CSS Selectors
Background - DOM
The jQuery Function Object
The jQuery Wrapper
API Function Notation
Handling DOM Ready Event
xhtml Note
References
Unit Conclusion

Chapter 9. Selectors
Background: The Sizzle Selector Engine
Selecting Elements by Attribute
Pseudo-Selectors
Faster Selection
More on Chaining: .end()
Testing Elements
Saving Selections
JavaScript Methods
Function Context
Conclusion

Chapter 10. DOM Manipulation
The $ Function Revisited
Getters and Setters
The text() Element Method
Appending DOM Elements
Removing DOM Elements
Performance

Chapter 11. Events
Event Overview
Old School: Event Handling Using HTML Element Attributes
Unobtrusive JavaScript
Multiple Handlers
Using jQuery Wrapper Event Registration Methods
Event Propagation
Handlers for Elements Before They Exist!
The Event Object
Triggering Events

Chapter 12. Utility Functions
The jQuery Object Revisited
Functions May Have Methods
Example jQuery Utility Functions

Chapter 13. AJAX
Ajax Overview
The Browser & the Server
The Ajax Request
The Ajax Response
Sending an Ajax Request With jQuery - The General Case
Sending an Ajax Request With jQuery - Simpler, Typical Case
Data Types

Chapter 14. The JavaScript Console and The Console Object API
JavaScript Console in Browsers
Dev Tooling Support in Browsers
The IE Web Dev Tools Console
The Console API
Coloring Your Output
Using Console Commands

Chapter 15. Debugging JavaScript Code
Why to Debug JavaScript Code?
Debugging Tools in Browsers
Chrome's DevTools
The Debugging Controls on the Sources Panel
Debugging Actions
Selecting a JavaScript File To Debug
Setting and Removing Breakpoints
Programmatic Control During Debug Pauses
Breaking on Exceptions
Other Debugging Techniques
Breakpoints on JavaScript Event Listeners
Supported Events

Chapter 16. Exception Handling in JavaScript
Exception Handling
Try Syntax
The Finally Block
The Nested Try Blocks
Exceptions Types in JavaScript
The Throw Statement
Using the Error Object

Chapter 17. Testing JavaScript With Jasmine
What is Jasmine
Supported Integrations
Jasmine in Standalone Mode
Jasmine in Standalone Mode
The Spec Runner Page
Test Suites
Specs (Unit Tests) & Expectations (Assertions)
Matchers
Using the not Property
Test Failures
Simulating Exceptions
Asynchronous Calls

Chapter 18. JavaScript Performance and Best Practices
Leverage Modern JavaScript Libraries
Loading Scripts
JavaScript Code Minification
Use JavaScript Style Guides
Avoid Global Variables, Use Proper Scopes
Leverage HTML5 Web Workers
Performance Optimization Considerations
Performance Profiling
JavaScript Program Profilers in Browsers
Clean-up Your Code
Use Strict Mode
Equal or Not Equal

Chapter 19. Test Automation and Continuous Integration Systems For JavaScript
Continuous Integration, Build and Test Automation
What is Node.js
Node Package Manager
What is Grunt
Excerpt from Gruntfile.js
What is Bower
What is Karma
Working with Browser Launchers
Setting Up Path to Browser Binaries
TeamCity Build Management System
TeamCity Overview