Duration: 5 days

Overview:

JavaScript: The Definitive Guide provides delegates with a programmers guide to the core language and to the client-side JavaScript APIs defined by web browsers.

This course covers HTML5 and ECMAScript 5, and brings developers in line with todays best web development practices.

Prerequisites:

Delegates should have a working knowledge of HTML and CSS.

Topics:

1 - Introduction to JavaScript

  • Core JavaScript
  • Client-Side JavaScript
  • Core JavaScript

2 - Lexical Structure

  • Character Set
  • Comments
  • Literals
  • Identifiers and Reserved Words
  • Optional Semicolons

3 - Types, Values, and Variables

  • Numbers
  • Text
  • Boolean Values
  • null and undefined
  • The Global Object
  • Wrapper Objects
  • Immutable Primitive Values and Mutable Object References
  • Type Conversions
  • Variable Declaration
  • Variable Scope

4 - Expressions and Operators

  • Primary Expressions
  • Object and Array Initializers
  • Function Definition Expressions
  • Property Access Expressions
  • Invocation Expressions
  • Object Creation Expressions
  • Operator Overview
  • Arithmetic Expressions
  • Relational Expressions
  • Logical Expressions
  • Assignment Expressions
  • Evaluation Expressions
  • Miscellaneous Operators

5 - Statements

  • Expression Statements
  • Compound and Empty Statements
  • Declaration Statements
  • Conditionals
  • Loops
  • Jumps
  • Miscellaneous Statements
  • Summary of JavaScript Statements

6 - Objects

  • Creating Objects
  • Querying and Setting Properties
  • Deleting Properties
  • Testing Properties
  • Enumerating Properties
  • Property Getters and Setters
  • Property Attributes
  • Object Attributes
  • Serializing Objects
  • Object Methods

7 - Arrays

  • Creating Arrays
  • Reading and Writing Array Elements
  • Sparse Arrays
  • Array Length
  • Adding and Deleting Array Elements
  • Iterating Arrays
  • Multidimensional Arrays
  • Array Methods
  • ECMAScript 5 Array Methods
  • Array Type
  • Array-Like Objects
  • Strings As Arrays

8 - Functions

  • Defining Functions
  • Invoking Functions
  • Function Arguments and Parameters
  • Functions As Values
  • Functions As Namespaces
  • Closures
  • Function Properties, Methods, and Constructor
  • Functional Programming

9 - Classes and Modules

  • Classes and Prototypes
  • Classes and Constructors
  • Java-Style Classes in JavaScript
  • Augmenting Classes
  • Classes and Types
  • Object-Oriented Techniques in JavaScript
  • Subclasses
  • Classes in ECMAScript 5
  • Modules

10 - Pattern Matching with Regular Expressions

  • Defining Regular Expressions
  • String Methods for Pattern Matching
  • The RegExp Object

11 - JavaScript Subsets and Extensions

  • JavaScript Subsets
  • Constants and Scoped Variables
  • Destructuring Assignment
  • Iteration
  • Shorthand Functions
  • Multiple Catch Clauses
  • E4X: ECMAScript for XML

12 - JavaScript in Web Browsers

  • Client-Side JavaScript
  • Embedding JavaScript in HTML
  • Execution of JavaScript Programs
  • Compatibility and Interoperability
  • Accessibility
  • Security
  • Client-Side Frameworks

13 - The Window Object

  • Timers
  • Browser Location and Navigation
  • Browsing History
  • Browser and Screen Information
  • Dialog Boxes
  • Error Handling
  • Document Elements As Window Properties
  • Multiple Windows and Frames

14 - Scripting Documents

  • Overview of the DOM
  • Selecting Document Elements
  • Document Structure and Traversal
  • Attributes
  • Element Content
  • Creating, Inserting, and Deleting Nodes
  • Example: Generating a Table of Contents
  • Document and Element Geometry and Scrolling
  • HTML Forms
  • Other Document Features

15 - Scripting CSS

  • Overview of CSS
  • Important CSS Properties
  • Scripting Inline Styles
  • Querying Computed Styles
  • Scripting CSS Classes
  • Scripting Stylesheets

16 - Handling Events

  • Types of Events
  • Registering Event Handlers
  • Event Handler Invocation
  • Document Load Events
  • Mouse Events
  • Mousewheel Events
  • Drag and Drop Events
  • Text Events
  • Keyboard Events

17 - Scripted HTTP

  • Using XMLHttpRequest
  • HTTP by <script>: JSONP
  • Comet with Server-Sent Events

18 - The jQuery Library

  • jQuery Basics
  • jQuery Getters and Setters
  • Altering Document Structure
  • Handling Events with jQuery
  • Animated Effects
  • Ajax with jQuery
  • Utility Functions
  • jQuery Selectors and Selection Methods
  • Extending jQuery with Plug-ins
  • The jQuery UI Library

19 - Client-Side Storage

  • localStorage and sessionStorage
  • Cookies
  • IE userData Persistence
  • Application Storage and Offline Webapps

20 - Scripted Media and Graphics

  • Scripting Images
  • Scripting Audio and Video
  • SVG: Scalable Vector Graphics
  • Graphics in a <canvas>

21 - HTML5 APIs

  • Geolocation
  • History Management
  • Cross-Origin Messaging
  • Web Workers
  • Typed Arrays and ArrayBuffers
  • Blobs
  • The Filesystem API
  • Client-Side Databases
  • Web Sockets
  • Core JavaScript Reference
  • Client-Side JavaScript Reference