WD-405: JavaScript
About this Course
This course is designed to give students hands on experience writing any kind of JavaScript code whether it’s small scripts on web pages, libraries of code, other packages, or even working with jQuery.
Audience Profile
Programmers from another language who want to maintain or develop applications based on JavaScript.
At Course Completion
Students will have a background in how JavaScript differs from other languages and be able to understand basic coding constucts.
Outline
Introduction
pre-ECMAScript 1995
ECMAScript 1996 – 2011
ECMAScript 6 (ES6)
v8
Nashorn
Background
JavaScript trends
Development process choices
Scripting in HTML
Script tags
<noscript>
“use strict”
Output methods
Comments
Syntax & Variables
Code blocks
Statements
Variables
Identifiers
var
Block scope
Statement types
Variables get copied values
Data types
Strings (text)
boolean
truthy / falsey
Variables in scripts
Operators
Arithmetic
Relational
Logical
Logical – short circuit
Default and guard usage
Compound operators
If-else replacement (ternary op)
typeof
Operator precedence
Program flow
Program flow types
for loop logic
for syntax – init
for syntax – test
for syntax – step
Loop keywords – control
Debugging
console.*
console.log(a, b, c…)
console.table( )
Tips
debugger;
Functions
A process/function model
Basics
Syntax
Naming
Using parameters
Calling functions
Pre-defined functions
Function scope
Function hoisting
Math
Program flow 2
Conditional basics
Conditionals
Nesting ifs
Checking values with switch
while loop
do while loop
Coding workflow
Name all your functions
Avoid closures
Use more and smaller functions
Check syntax & style
Strongly consider strict mode
Arrays
Creating + initializing
Accessing and length
Initializing
Sparseness
Array indexes & properties
Associative arrays
The arguments array
Array of functions
Array-like objects
Array-like object à array
Program flow 3
Array looping
forEach and related - ES5
for loop
for-in
for-of - ES6
explicit iterators – ES6
Objects
Intro
A relational data structure
An object data structure
Relational vs. OO
Objects
this
Creating an object - object initializers
Creating an object – constructors
Using the properties
Adding functions
Composition
for-in
Treating objects like an array
DOM Objects
the DOM
A DOM tree of nodes
Document properties
Nodes
Selecting nodes
Selecting nodes
querySelector( )
querySelectorAll( )
Navigator properties
History properties
Window object
DOM manipulation
Intro
Traversal
Attributes – HTML
Attributes - non HTML
Content
Create, insert, delete nodes
Events & event handlers
Intro
Binding/registering event handlers
Register event handlers
Event type overview
Events in the handler
Events in the handler – IE8
Useful value properties
addEventListener( )
attachEvent( )
Default action / bubbling / propagation
Math, Number, and Date Objects
Randomizing
Random link
Number
Strings to numbers
Date
Strings
Intro
Manipulation
Regular Expressions
Intro
Resources
Metacharacters
Quantifiers (greedy)
Characters
Character classes
Predefined Character Classes
Lookaround
Capturing groups
Match flags - embedded / flag
Writing for JavaScript
Functions
jQuery
the jQuery datatype
Creations
Conversion
Libraries
General Utilities
Misc
Communciation
Charting
Mapping
Diagramming
Color
Misc
Resources
Prerequisites
HTML and CSS at a basic level.