Javascript
This is a generic JavaScript course with focus on making web pages interactive. This course starts from the absolute basics. This course may be used as a stepping stone for moving to more advanced forms of JavaScript based Frameworks such as Vue, Node etc. This course shall not be dealing with any frameworks, but pure JavaScript.
Learning Outcome
By the end of the course, the learner may be expected to:
- Understand the core basics of JavaScript
- Understand the transition to modern JavaScript
- Have a good working understanding on:
- Variables
- Functions
- Arrays
- Objects
- Object-oriented programming
- Prototypes
- JavaScript engines
- Document Object Model with JavaScript
- Event handling, asynchronous coding and Http requests
- Testing, security and deployment
Duration
- 3 days
- Medium Intensity
- Will assessments
Prerequisites
- Basic skills to develop web pages using HTML
- Basic understanding of CSS
- Filing system
Outline
- Introduction
- Overview
- Setup
- SOP
- Basics: Variables, Data Types, Operators & Functions
- Introducing Variables & Constants
- Data Types
- Functions
- Code Styles, Conventions & Syntax
- Returning Values
- Scope
- Functions & Scope
- Converting Data Types
- Mixing Numbers & Strings
- Splitting Code into Functions
- Connecting all Buttons to Functions
- Using Arrays
- Creating Objects
- Accessing Object Data
- Arrays & Objects
- undefined, null & NaN
- Importing Scripts Correctly with "defer" & "async"
- Control Structures (if Statements, Loops, Error Handling)
- Introducing "if" Statements & Boolean (Comparison) Operators
- The Logical AND and OR Operators
- Understanding Operator Precedence
- if & Boolean Operators
- Coercion vs Conversion
- Validating User Input
- Utilizing Global Constants as Identifiers in Conditional Code
- Ternary Operator
- Working with the "switch-case" Statement
- Loops
- Controlling Iterations
- Error Handling
- Functions (Advanced)
- Parameters vs Arguments
- Functions vs Methods
- Functions as Objects
- Function Expressions
- Anonymous Functions
- Functions Inside of Functions
- Callback Functions
- Working with advanced methods
- Working with the DOM (Browser HTML Code) in JavaScript
- Document and Window Object
- Understanding the DOM and how it's created
- Nodes & Elements - Querying the DOM Overview
- Selecting Elements in the DOM
- Exploring and Changing DOM Properties
- Attributes vs Properties
- Selecting Multiple Elements & Summary
- Traversing the DOM Traversing Child Nodes
- Using parentNode & parentElement
- Selecting Sibling Elements
- DOM Traversal vs Query Methods
- Styling DOM Elements
- Creating Elements with JS - Overview
- Adding Elements via HTML in Code
- Adding Elements via createElement()
- Inserting DOM Elements
- Cloning DOM Nodes
- Live Node Lists vs Static Node Lists
- Removing Elements
- Insertion & Removal Method Summary
- Arrays & Iterables
- Creating Arrays
- Array methods
- The splice() Method
- Selecting Ranges & Creating Copies with slice()
- Adding Arrays to Arrays with concat()
- Retrieving Indexes with indexOf() /& lastIndexOf()
- Finding Stuff: find() and findIndex()
- Alternative to for Loops: The forEach() Method
- Transforming Data with map()
- sort()ing and reverse()ing
- Filtering Arrays with filter()
- The Important reduce() Method
- Chaining Methods in JavaScript
- Arrays & Strings
- The Spread Operator (...)
- Understanding Array Destructuring
- Maps & Sets - Overview
- Working with Sets
- Working with Maps
- Maps vs Objects
- Understanding WeakSet
- Understanding WeakMap
- Objects
- Objects & Primitive Values
- Adding, Modifying & Deleting Properties
- Special Key Names & Square Bracket Property Access
- Property Types & Property Order
- Dynamic Property Access & Setting Properties Dynamically
- Getters & Setters
- Classes & Object-oriented Programming (OOP)
- Getting Started with OOP Code
- Working with Constructor Methods
- Fields vs Properties
- Using & "Connecting" Multiple Classes
- Binding Class Methods & Working with "this"
- Static Methods & Properties
- Getters & Setters
- Inheritance
- Overriding Methods and the super() Constructor
- super() Constructor Execution, Order & "this"
- Different Ways of Adding Methods
- Private Properties
- "Pseudo-Private" Properties
- Project
- Assessment
Practical, connected learning
My wider training approach brings hands-on implementation and systems thinking together, connecting technology with real operational needs.