syllabus
1. JavaScript Fundamentals: - Introduction: History, execution environment (browser, Node.js), basic syntax.
- Variables and Data Types:
var, let, const, primitive types (strings, numbers, booleans, null, undefined, BigInt, Symbol), reference types (objects, arrays). - Operators: Arithmetic, assignment, comparison, logical, bitwise, ternary.
- Control Flow: Conditional statements (
if-else, switch), loops (for, while, do-while, for...in, for...of). - Functions: Declaration, expression, arrow functions, parameters, return values, scope (global, local, block), closures, hoisting.
- Arrays: Creating, manipulating (methods like
push, pop, splice, slice), iteration (e.g., forEach, map, filter, reduce). - Objects: Creating, properties, methods, dot and bracket notation, built-in objects (e.g.,
Math, Date). - Object-Oriented Programming (OOP) Concepts: Prototypes, inheritance, classes (ES6),
this keyword.
3. Browser-Side JavaScript (DOM Manipulation and Events): - Document Object Model (DOM): Selecting and manipulating HTML elements, changing styles, creating and deleting nodes.
- Event Handling: Event listeners, event propagation (bubbling, capturing), event object.
- Browser Object Model (BOM):
window object, location, navigator, timers (e.g., setTimeout, setInterval).
4. Asynchronous JavaScript: - Asynchronous Programming: Callbacks, Promises,
async/await. - APIs: Introduction to working with web APIs (e.g., Fetch API for HTTP requests).
5. Advanced Topics (Optional, depending on course depth): - Error Handling:
try-catch, custom errors. - Modules: ES6 modules (
import/export). - Testing: Introduction to testing frameworks (e.g., Jest).
- Modern JavaScript Features: Destructuring, spread/rest operators, optional chaining, nullish coalescing.
- Server-Side JavaScript: Introduction to Node.js and its ecosystem.
- Frameworks and Libraries: Brief overview or introduction to popular frameworks like React, Angular, or Vue.js.
