Dynamic Typing
Variables do not require explicit types and can change type at runtime.
JavaScript is a high-level, interpreted, dynamically typed programming language primarily used to create interactive and dynamic web applications. It runs inside the browser but is also widely used on servers through environments like Node.js.
Unlike traditional compiled languages, JavaScript executes directly in the browser using a JavaScript Engine (like V8 in Chrome), which parses and executes code line by line.
JavaScript follows a single-threaded, event-driven architecture using an event loop to handle asynchronous operations.
Dynamic Typing
Variables do not require explicit types and can change type at runtime.
First-Class Functions
Functions can be assigned to variables, passed as arguments, and returned from other functions.
Prototype-Based OOP
Objects inherit from other objects using prototypes instead of classical classes.
Event-Driven
JavaScript responds to user actions like clicks, typing, and network responses.
Frontend
Used in browsers to manipulate UI using DOM, events, and APIs.
Backend (Node.js)
Server-side JavaScript for APIs, databases, and services.
Frameworks & Libraries
React, Vue, Angular help build scalable applications.
Tooling
Bundlers (Webpack, Vite), Transpilers (Babel), Linters (ESLint)
Variables & Data Types
Understanding var, let, const, primitive and reference types.
Operators & Expressions Arithmetic, logical, comparison, and assignment operations.
Control Flow
Conditional statements (if, switch) and loops (for, while).
Functions Function declarations, expressions, arrow functions, closures.
Objects & Arrays Core data structures used in JavaScript.
DOM Manipulation Interacting with HTML elements dynamically.
Events Handling user interactions like clicks, input, and keyboard events.
Asynchronous JavaScript Callbacks, Promises, async/await.
Prototypes & Object-Oriented Programming Understanding prototypes, inheritance, and OOP concepts.
ES6+ Features Modern syntax like destructuring, spread operator, modules.
Unexpected JavaScript Behavior Deep dive into surprising language behavior and how to avoid production bugs.
Code runs line by line, blocking execution.
Non-blocking execution using callbacks and promises.