Intermediate JavaScript

Advancing modern JavaScript development skills

This course is designed for developers who already understand JavaScript fundamentals and want to apply the language more effectively in professional software projects. You’ll learn how to organise code, handle complex behaviour and apply development practices that support long-term maintainability. It is particularly relevant if you looking to strengthen the way you approach JavaScript in delivery-focused environments and complex development work. 

Learning objectives
  • Organise JavaScript code effectively  
  • Work confidently with scope and closures  
  • Apply object-based design principles  
  • Use functional programming techniques  
  • Manage asynchronous behaviour  
  • Build modular JavaScript applications  
  • Test JavaScript functionality 

Key facts

Certification

This course includes a completion certificate. 

Who it’s for

This course is suitable for learners with existing JavaScript knowledge who want to develop more structured, scalable applications. 

Prerequisites

You should be comfortable with JavaScript fundamentals, DOM manipulation and basic HTML/CSS. 

Exam information

This course does not include an exam. 

Optional extras

This course includes hands-on exercises and access to learning materials for continued practice. 

Pre-course

No preparation work is required for this course. 

Course syllabus

Dive into the detail of the course by looking at the syllabus below. 

Day one
  • Session 1: Modern syntax, operators and data structures
    • Destructuring
    • Spread
    • Rest parameters
    • Short circuiting
    • Logical assignment operators
    • Enhanced object literals
    • Optional chaining
    • Nullish coalescing
    • Sets and Maps
Day one
  • Session 2: Scope
    • What is scope?
    • Types of scope
    • Lexical scope
    • The scope chain
    • Closures
    • IIFEs
Day one
  • Session 3: Object-oriented programming
    • What is object-oriented programming?
    • Object templates
    • Constructor functions
    • The this keyword review
    • Object prototypes
    • Classes
    • Fields, constructors and methods
    • Static members
    • Encapsulation
    • Inheritance
    • Composition
    • Mutating arrays, including push and splice
Day one
  • Session 4: Functional programming
    • Functions review
    • What is functional programming?
    • Pure functions
    • Immutability
    • Spread
    • Functions as first-class objects
    • Higher-order functions
    • Callbacks
    • Transforming arrays, including filter and map
Day two
  • Session 5: Asynchronous programming
    • What is asynchronous programming?
    • The Event Loop
    • Asynchronous callbacks
    • setTimeout and setInterval
    • Promises
    • async and await
    • Reactive programming and observables
    • Asynchronous programming and fetching data
Day two
  • Session 6: Modules, managed apps and tooling
    • What is a module?
    • Exporting and importing module features
    • Embedding a module in HTML
    • Default and named exports
    • Aliases
    • Module objects
    • Modules, packages, libraries and frameworks
    • Categories of tools
    • Package management
    • Module bundling
    • Transpilation
    • TypeScript
    • Creating a managed app
Day two
  • Session 7: Testing
    • The purpose of testing
    • Types of testing
    • Running tests
    • Test tools
    • Unit testing
    • Integration testing
    • End-to-end testing
    • Testing asynchronous code
    • Using mocks

FAQs

This course equips you with practical, intermediate-level JavaScript skills, including modern syntax, object-oriented design, async handling, and robust testing for scalable app development. 

What level of JavaScript experience do I need?

You should already be comfortable with JavaScript fundamentals, DOM manipulation and basic HTML/CSS. This course is not designed as a first introduction to JavaScript. It is best suited to developers who can already write basic scripts and want to improve how they structure, test and maintain JavaScript in larger or more complex projects. 

How will this course help my development work?

The course helps you make stronger decisions about how JavaScript code is organised and maintained. You’ll look at areas such as scope, closures, object-oriented design, functional techniques, asynchronous behaviour and testing. These skills support cleaner code, fewer avoidable defects and better confidence when working on applications that need to change over time. 

Will the course cover asynchronous JavaScript?

Yes. You’ll explore how JavaScript handles asynchronous behaviour, including the event loop, callbacks, Promises, async and await, and fetching data. This helps you understand what is happening behind the scenes when applications manage timed tasks, external data or operations that should not block the user experience. 

Does the course include testing?

Yes. Testing is covered as part of writing JavaScript that can be changed and supported with more confidence. You’ll look at unit, integration and end-to-end testing, along with testing asynchronous code and using mocks. The aim is to help you verify behaviour and reduce risk as applications become more complex. 

Is this course useful for front-end and full-stack developers?

Yes, where your role involves writing or maintaining JavaScript. The course is relevant to developers who want to strengthen their approach to application structure, asynchronous behaviour, modular code and testing. It is particularly useful if you are moving beyond small scripts into more structured development work. 

Will I receive a certificate?

Yes. The course includes a completion certificate. No formal exam is listed for this course, so the focus is on building practical JavaScript capability through instructor-led learning, examples and exercises. 

Why study with TSG?
25+ years' experience

Trusted by individuals, businesses and public sector organisations for over 25 years.

20,000+ learners trained

Join a network of learners focused on developing their software testing skills 

98% customer satisfaction

TSG trainers are frequently rated as ‘good’ or ‘excellent’ by our learners

Speak to our team
Guidance from experienced advisors

If you’re unsure which course aligns with your technical requirements or career direction, we’ll help you assess your options and choose with confidence.  

Build capability
Develop skills that support real delivery outcomes

From software testing to broader digital skills, we work with you to design learning that strengthens capability, improves performance, and supports long-term business goals.

Quote request

Please complete the form to ensure your quote is accurate and we will contact you soon.

Page {{ step }} of 2

Back Next