Course Description
In this Advanced JavaScript Programming class, you will learn advanced JavaScript techniques and good standard coding conventions. You will also learn advanced form validation with Regular Expressions, to manipulate the HTML DOM and to create jump menus and cascading select menus. Finally, you will learn to manipulate CSS with JavaScript to create applications using Dynamic HTML.
Target Student:
This course is intended for students with experience with JavaScript basics and HTML. Some experience with CSS is also beneficial
Prerequisites:
HTML, basic JavaScript. Introduction to JavaScript
Delivery Method:
Instructor led, group-paced, classroom-delivery learning model with structured hands-on activities.
Performance-Based Objectives:
Upon successful completion of this course, students will be able to:
Course Content
1) Quick JavaScript Recap
a) Primitive data types
i) Null
ii) Undefined
iii) Boolean
iv) Number
v) String
b) Native Types
i) Date
ii) Array
iii) Object
iv) Regular Expressions
c) Functions
d) The DOM
i) The DOM is not JavaScript
ii) JavaScript is not the DOM
iii) The window object
e) The XMLHttpRequest object
f) JSON
2) Advanced Techniques
a) Optional Function Arguments
b) Truthy and Falsy
c) Default Operator
i) Default Operator Gotcha!
d) Functions Passed as Arguments
e) Anonymous Functions
f) Inner Functions
g) Observing and Capturing Events
h) The eval() Function
i) Variable Scope
j) Error Handling
i) Runtime Errors
k) The delete Operator
3) Regular Expressions
a) Getting Started
i) JavaScript's Regular Expression Methods
ii) Flags
iii) String Methods
b) Regular Expression Syntax
i) Start and End ( ^ $ )
ii) Number of Occurrences ( ? + * {} )
iii) Common Characters ( . d D w W s S )
iv) Grouping ( [] )
v) Negation ( ^ )
vi) Subpatterns ( () )
vii) Alternatives ( | )
viii) Escape Character ( )
c) Backreferences
d) Form Validation with Regular Expressions
e) Cleaning Up Form Entries
4) The HTML Document Object Model
a) innerHTML
b) Accessing Element Nodes
i) getElementById()
ii) getElementsByTagName()
iii) getElementsByClassName()
iv) querySelectorAll()
v) querySelector()
c) Accessing Element and Text Nodes Hierarchically
d) Attaching Events
i) Event Propagation: Capturing and Bubbling
ii) Detaching Events
e) Accessing Attribute Nodes
i) getAttribute()
ii) attributes[]
f) Accessing Nodes by Type, Name or Value
i) nodeType
ii) nodeName