- What is a programming language?
- What is front-end?
- What is back-end?
- Introduction
- HTML
- CSS
- JavaScript
- Role of HTML, CSS, and JavaScript in WEB development?
- JavaScript history
- ECMAScript
- JScript
- ActionScript
- JavaScript
- ECMA-262 and ISO/IEC 16262
- Versions of JavaScript & History
- Backward & Forward compatible
- JavaScript Engines
- V8
- SpiderMonkey
- JavaScriptCore
- What is an IDE?
- Downloading & Installing Visual Studio Code
- Difference - File vs Folder vs Workspace
- VSCode shortcuts
- Installing extensions
- Applying Settings & Default Formatter Setting
- Separation of concern
- Setting up starter files
- Folder structure for JavaScript projects
- High Level Language
- Garbage Collected
- Interpreted Language (JIT)
- Parsing
- Interpretation
- Profiling
- Compilation
- Execution
- Multi Paradigm
- Prototype based functions
- First Class Function
- Dynamically Typed
- Single Threaded
- Non-Blocking Event Loop
- Platform Independent
- console.log
- console utilities
- console.warn
- console.error
- console.table
- document.write()
- window.alert()
- innerHTML (part of DOM)
- Value, Variable and Data Types
- Difference between Primitive and Non-Primitive Data Types ?
- Number
- String
- Boolean
- Undefined
- Null
- Symbol
- BigInt
- Object
- Function
- What are the truthy and falsy values in JavaScript ?
- Falsy values
- undefined
- null
- 0
- ""
- false
- NaN
- Using Truthy and Falsy values in conditional statements
- Implicit type conversion / Coercion
- Explicit type conversion
- String to Number
- Boolean to Number
- Undefined to Number
- Number to String
- Boolean to String
- String to Boolean
- Number to Boolean
- Alert Box
- Confirm Box
- Prompt Box
- What is an identifier ?
- Rules for creating identifier
- Reserved keywords
- What is comment ?
- Single line comment
- Multi line comment
- Coding guidelines for comments
- What is a statement in programming ?
- Single line statement
- Multi-line code block
- Semicolon and whitespace
- let
- const
- var
- Difference between let, const and var
- When to use let, const and var
-
-
-
- /
- %
- **
- ++
- =
- +=
- -=
- *=
- /=
- %=
- **=
- ==
- ===
- !=
- !==
-
- <
-
=
- <=
- &&
- ||
- !
- typeof
- ternary operator
- nullish coalescing ??
- ||=
- &&=
- ??=
- if
- else if
- else
- Nested conditions
- Switch case
- What is the significance of use strict ?
- Behavior without strict mode
- For Loop
- While Loop
- Do while loop
- Loop inside loop
- Backwards Loop
- For of loop
- For in loop
- Break and continue
- What is a String ?
- String literal vs String object
- Escape characters
- Template literals
- charAt
- slice
- substring
- substr (deprecated)
- replace
- repeat
- toUpperCase
- toLowerCase
- concat
- trim
- trimStart
- trimEnd
- padStart
- padEnd
- split
- indexOf
- lastIndexOf
- startsWith
- endsWith
- includes
- match
- search
- What is Scoping
- Lexical Scoping
- Global Scope
- Function Scope
- Block Scope
- Function declaration
- Function expression
- Arrow function
- Anonymous function
- Function invocation
- Calling function from other function
- Parameters & Arguments
- Default parameters
- Arguments object
- Passing arguments (value vs reference)
- First Class Function
- Higher Order Function
- Callback function
- setTimeout
- clearTimeout
- setInterval
- clearInterval
- call
- apply
- bind
- IIFE
- Closures
- Hoisting
- Temporal Dead Zone
- Currying
- Recursion
- DRY Principle
- Debugging
- Chrome Developer Tools
- Breakpoints
- Fixing errors
- console.log
- console.warn
- console.error
- console.table
- Syntax Error
- Reference Error
- Type Error
- Range Error
- URI Error
- 64-bit Floating Point Numbers
- Number conversion
- Binary
- Octal
- Decimal
- Hexadecimal
- toFixed
- toString
- parseInt
- parseFloat
- isNaN
- MAX_VALUE
- MIN_VALUE
- Infinity
- NaN
- Intl.NumberFormat
- Date object
- Creating dates
- Milliseconds
- Getter methods
- Setter methods
- Intl.DateTimeFormat
- Creating arrays
- Array indexing
- Array length
- Looping arrays
- push
- pop
- shift
- unshift
- concat
- join
- splice
- slice
- sort
- reverse
- forEach
- map
- filter
- reduce
- find
- findIndex
- some
- every
- flat
- flatMap
- at
- Object basics
- Object literal
- new Object()
- Dot notation
- Bracket notation
- Object.keys
- Object.values
- Object.entries
- Shallow copy
- Deep copy
- structuredClone()
- Creating Set
- Set methods
- Iteration
- WeakSet
- Creating Map
- Map methods
- Iteration
- WeakMap
- Array destructuring
- Object destructuring
- Nested destructuring
- Default values
- Copy arrays
- Merge arrays
- Spread in function calls
- Variable arguments
- Rest in objects
- Safe property access
- Optional method calls
- Property shorthand
- Method shorthand
- Computed properties
- DOM introduction
- DOM selection
- getElementById
- querySelector
- querySelectorAll
- innerHTML
- textContent
- attributes
- style
- click
- change
- mouse events
- keyboard events
- addEventListener
- event bubbling
- event capturing
- event delegation
- createElement
- appendChild
- removeChild
- window
- history
- navigator
- screen
- location
- cookies
- localStorage
- sessionStorage
- What is JSON
- JSON.parse
- JSON.stringify
- What is XML
- JavaScript Engine
- Call Stack
- Memory Heap
- Execution Context
- Event Loop
- Scope Chain
- this keyword
- Object
- Class
- Encapsulation
- Inheritance
- Polymorphism
- Abstraction
- Prototype chain
- Prototypal inheritance
- constructor
- getters
- setters
- static methods
- private fields
- Client
- Server
- Request
- Response
- APIs
- REST
- CORS
- XMLHttpRequest
- API calls
- Handling responses
- fetch()
- Handling responses
- JSON parsing
- Error handling
- AbortController
- Promises
- Promise chaining
- Async/Await
- Promise.all
- Promise.race
- Promise.allSettled
- Promise.any
- try
- catch
- finally
- throw
- Custom Errors
- Async error handling
- import
- export
- dynamic import
- top level await
- NPM
- Bundlers
- Parcel
- Babel
- Polyfills
- Transpiling
- XSS
- CSRF
- Content Security Policy
- HTTPS
- Secure Cookies
- Generators
- Proxy
- Reflect
- Web Workers
- Service Workers
- WebSockets
- Memoization
- Immutable Data
- WebRTC
- WebAssembly