JavaScript Fundamentals

Training

In Belfast

Price on request

Description

  • Type

    Training

  • Level

    Intermediate

  • Location

    Belfast (Northern Ireland)

  • Duration

    5 Days

  • Start date

    Different dates available

This course enables delegates to use JavaScript as their primary language within the development of single page web applications that interact with REST ful services. There is extensive coverage of both the object-oriented and functional aspects of JavaScript, and in particular how the two can be used to compliment one another. Throughout the course delegates learn the best practices for applying each language feature, as well as the numerous pitfalls and anti-patterns to be avoided. The duration of the course and depth of material covered can be adjusted based on the audience. For junior developers the course is delivered over 4 days and has a strong focus on basic concepts. For senior developers the course can be delivered over 3 days and will include extra detail on how to make the most of JavaScripts functional features.

By default the course uses Chrome for all the examples and exercises.

Facilities

Location

Start date

Belfast (County Antrim)
See map
Instil Software, Linen Loft, 27-37 Adelaide Street, BT2 8FE

Start date

Different dates availableEnrolment now open

About this course

1. This course enables delegates to use JavaScript as their primary language within the development of single page web applications that interact with RESTful services. 2. There is extensive coverage of both the object-oriented and functional aspects of JavaScript, and in particular how the two can be used to compliment one another. 3.Throughout the course delegates learn the best practices for applying each language feature, as well as the numerous pitfalls and anti-patterns to be avoided.

Delegates who want to learn the fundamental of JavaScript and who have several years programming experience in one or more of Java, C#, C++, Pearl, Python and/or Ruby

Delegates should have previous programming experience (from university and/or industry) in one or more of Java, C#, C++, Perl, Python and Ruby. Delegates should have access to 'JavaScript The Good Parts ' for course prep and follow up work

None

Course can be flexible and tailored to suit needs of the delegates

Email training@Instil.co to request information and a member of our training team will get in contact with you as soon as possible

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Subjects

  • Front-end
  • Javascript
  • Programming
  • Underscore.js
  • Ajax
  • RESTful
  • JSON
  • DOM tree
  • OO
  • Server-side

Course programme

Introduction to JavaScript
  • How JavaScript began and grew in respectability
  • JavaScript as the ‘assembly language of the web’
  • Features supported in different versions of JavaScript
  • Cross-browser issues and JavaScript frameworks
  • The relationship between Java and JavaScript
  • CoffeeScript as a better syntax for JavaScript
  • TypeScript as JavaScript with strong typing
  • Dart as a potential replacement for JavaScript
  • An overview of server-side coding with Node.js
Basic JavaScript Programming
  • The core JavaScript types and dynamic typing
  • Explicit and implicit variable declarations
  • Implicit conversions and the bugs they can cause
  • Minimizing your programs use of global variables
  • Using typeof and instanceof to investigate types
  • The lack of block scope and ‘variable hoisting’
  • Understanding truth and equality in JavaScript
  • Making choices, basic iteration and the for…in loop
  • Manipulating strings and applying regular expressions
  • Working with single and multi-dimensional arrays
  • The difference between arrays and ‘array-like’ objects
Writing Functions in JavaScript Part 1
  • How and why functions are ‘first class citizens’
  • Four patterns of invocation for calling JavaScript functions
  • Understanding the binding of this in functions
  • Calling functions with fewer parameters or additional ones
  • Creating variadic functions using the arguments array
  • Passing functions as arguments into other functions
  • Building and returning functions from functions
Writing Functions in JavaScript Part 2
  • Using generated functions as closures
  • Why closures store references to outer variables
  • Subtle bugs caused by incorrect use of closures
  • Using nested functions as an encapsulation technique
  • What’s an ‘immediately invoked function expression’ (aka IIFE)?
  • How IIFE’s are used in the JavaScript Module Pattern
  • Understanding the Asynchronous Module Definition (AMD) spec
Functional Programming with ‘Underscore.js’
  • Using functions as the unit of composition
  • Replacing external iteration with each, filter and map
  • Producing a single value from a list via folds and reduction
  • Applying currying and partial application in JavaScript
  • Writing recursive functions and the Trampoline Principle
Object Orientation in JavaScript Part 1
  • Understanding the prototype based style of OO
  • Pros and cons of ‘monkey patching’ built in types
  • Declaring objects using the Object type
  • Declaring objects using the literal syntax
  • Declaring objects using constructor functions
  • Protecting against incorrect constructor invocation
  • Different options for accessing members of objects
Object Orientation in JavaScript Part 2
  • Implementing inheritance using the prototype chain
  • Distinguishing between owned and inherited properties
  • The difference between prototype and proto
  • Minimizing mutable state when designing JavaScript types
  • Applying the SOLID principles of OO design in JavaScript
  • GoF Design Patterns that are relevant in JavaScript
ECMAScript 2015 and Beyond
  • Writing modern JavaScript and retaining compatibility
  • How ECMAScript 2015 was a huge step forward
  • Modules and the import / export syntax
  • String interpolation / template literals
  • Block scope via ‘let’
  • Iterators, generators and the ‘for…of’ statement
  • New class syntax
  • Using the spread operator with functions and structures
  • New data structures - Maps and typed arrays
  • Intercepting object interaction with the Proxy type
  • Simplified anonymouse functions with arrow functions
  • Writing asynchronous code with Promises
  • The TC39 process and using non-standard features
Manipulating the DOM Tree
  • Making sense of the Document Object Model
  • Different options for locating nodes in the DOM
  • Adding, manipulating and removing nodes from the tree
  • The three supported models for handling DOM events
  • Finding and validating the content of form elements
  • Working with hidden form elements and cookies
  • Using timers to schedule code for execution
  • Asynchronous JavaScript in HTML5 using WebWorkers
Applying AJAX
  • How AJAX was invented and popularised
  • Creating an XHR object on different browsers
  • Sending requests to the server via the XHR object
  • The stages in the lifecycle of an XHR request
  • Using onreadystatechange to monitor the progress of a request
  • Adding extra headers and cookies to the request
  • Handing HTTP errors and enforcing timeouts
Communicating with RESTful Services
  • Introduction to the REST Architecture
  • The meaning of the different HTTP Verbs
  • ‘URL Templates’ and ‘Content Negotiation’
  • The limitations of using XML within JavaScript
  • An overview of the JSON formatting standard
  • Sending and receiving data from services via JSON
  • Writing a complete REST client with error handling

Additional information

This course can be delivered as a public or a private course

JavaScript Fundamentals

Price on request