🇮🇳 Full Stack Web Development · subject
Full Stack Web Development JavaScript Programming Syllabus
The JavaScript Programming syllabus for Full Stack Web Development in full: 4 chapters, 16 topics and 44 sub-topics, every one listed below, plus 50 JavaScript Programming flashcards with answers.
JavaScript Programming syllabus: all 4 chapters
Expand any chapter to see its topics and sub-topics.
-
JavaScript Core Syntax
4 topics- Variables and Data Types
- var, let and const
- Primitive and reference types
- Type coercion and conversion
- Operators and Expressions
- Arithmetic and assignment operators
- Comparison (== vs ===)
- Logical and ternary operators
- Control Flow
- if/else and switch
- for, while and do-while loops
- break and continue
- Functions
- Function declarations and expressions
- Arrow functions
- Parameters, defaults and rest
- Scope and hoisting
- Variables and Data Types
-
Working with Data Structures
4 topics- Arrays
- Array creation and indexing
- Iteration methods (map, filter, reduce)
- forEach, find and sort
- Objects
- Object literals and properties
- Methods and the this keyword
- Destructuring and spread
- Strings and Template Literals
- String methods
- Template strings and interpolation
- Maps, Sets and JSON
- Map and Set collections
- JSON.parse and JSON.stringify
- Arrays
-
DOM and Browser APIs
4 topics- DOM Manipulation
- Selecting elements (querySelector)
- Creating and modifying nodes
- Changing styles and classes
- Event Handling
- addEventListener and event objects
- Event bubbling and delegation
- Preventing default behaviour
- Browser Storage
- localStorage and sessionStorage
- Cookies basics
- Timers and Web APIs
- setTimeout and setInterval
- Geolocation and History API
- DOM Manipulation
-
Modern JavaScript (ES6+)
4 topics- ES6 Features
- Classes and inheritance
- Modules (import/export)
- Symbols and iterators
- Asynchronous JavaScript
- Callbacks and the event loop
- Promises and chaining
- async/await syntax
- Fetching Data
- Fetch API and Promises
- Handling JSON responses
- Error handling with try/catch
- Functional Programming Concepts
- Pure functions and immutability
- Higher-order functions and closures
- ES6 Features
Full Stack Web Development JavaScript Programming flashcards — 50 questions with answers
In JavaScript, what is the difference between let, const, and var in terms of scope?
var is function-scoped (or global) and hoisted; let and const are block-scoped. const additionally cannot be reassigned after initialization.
What are the seven primitive data types in JavaScript?
string, number, boolean, null, undefined, symbol, and bigint. Everything else is an object.
What does the typeof operator return for null, and why is this notable?
It returns "object". This is a long-standing bug in JavaScript kept for backward compatibility; null is actually a primitive.
What is the difference between undefined and null?
undefined means a variable has been declared but not assigned a value; null is an intentional assignment representing 'no value'.
What is the difference between == and === in JavaScript?
== compares values after type coercion (loose equality); === compares both value and type without coercion (strict equality).
What does the ternary operator look like and what does it do?
condition ? valueIfTrue : valueIfFalse. It is a shorthand conditional expression that returns one of two values based on the condition.
What does the nullish coalescing operator (??) do?
It returns the right-hand operand only when the left-hand is null or undefined (not for other falsy values like 0 or '').
How does the logical OR (||) operator behave with falsy values for default assignment?
It returns the first truthy operand, or the last operand if all are falsy. So 0 || 'x' returns 'x', unlike ?? which would return 0.
What are the six falsy values in JavaScript besides false?
0, '' (empty string), null, undefined, NaN, and -0. Plus false and 0n (BigInt zero).
What is the difference between the prefix (++x) and postfix (x++) increment operators?
Prefix ++x increments then returns the new value; postfix x++ returns the original value then increments.
What is the difference between a for...of loop and a for...in loop?
for...of iterates over the values of an iterable (arrays, strings); for...in iterates over the enumerable keys/property names of an object.
What does the break statement do versus the continue statement in a loop?
break exits the loop entirely; continue skips the rest of the current iteration and proceeds to the next one.
What is the difference between a while loop and a do...while loop?
A while loop checks the condition before executing the body (may run zero times); a do...while loop executes the body once before checking, guaranteeing at least one run.
How does a switch statement use the break keyword, and what happens without it?
break stops execution after a matching case. Without it, execution 'falls through' to subsequent cases until a break or the switch ends.
What is the difference between a function declaration and a function expression regarding hoisting?
Function declarations are fully hoisted and callable before definition; function expressions are not (only the variable is hoisted, not the assignment).
How do arrow functions differ from regular functions regarding the 'this' keyword?
Arrow functions do not have their own 'this'; they inherit it lexically from the enclosing scope. Regular functions bind 'this' based on how they are called.
What are default parameters in a JavaScript function?
Values assigned to parameters in the signature (e.g., function f(x = 5)) that are used when the argument is undefined or omitted.
What does the rest parameter (...args) do in a function definition?
It collects all remaining arguments into a single real array, allowing variadic functions.
What is a closure in JavaScript?
A closure is a function that retains access to variables from its outer (enclosing) lexical scope even after that outer function has returned.
What is an IIFE and why is it used?
An Immediately Invoked Function Expression: (function(){ ... })(). It runs immediately upon definition, commonly used to create a private scope and avoid polluting the global namespace.
Show the other 30 JavaScript Programming flashcards
What is the difference between Array.push() and Array.unshift()?
push() adds element(s) to the end of an array; unshift() adds element(s) to the beginning. Both return the new length.
What does Array.map() return and how does it differ from Array.forEach()?
map() returns a new array of the same length with each element transformed by the callback; forEach() returns undefined and is used only for side effects.
What does Array.filter() do?
It returns a new array containing only the elements for which the callback returns a truthy value.
What does Array.reduce() do and what are its arguments?
It reduces an array to a single value by applying a callback (accumulator, currentValue) across elements, with an optional initial accumulator value.
What is the difference between Array.slice() and Array.splice()?
slice() returns a shallow copy of a portion without modifying the original; splice() mutates the array by removing/replacing/inserting elements and returns the removed elements.
What is the difference between Array.find() and Array.findIndex()?
find() returns the first element matching the callback (or undefined); findIndex() returns the index of that element (or -1).
How do you create a shallow copy of an array using the spread operator?
const copy = [...original]; The spread operator expands the array's elements into a new array literal.
What does Array.includes() do and how does it differ from indexOf()?
includes() returns a boolean indicating whether a value exists; indexOf() returns the index (or -1) and cannot reliably detect NaN, whereas includes() can.
How do you access and how do you dynamically access object properties?
Dot notation (obj.key) for fixed names; bracket notation (obj['key'] or obj[variable]) for dynamic or non-identifier keys.
What does Object.keys(), Object.values(), and Object.entries() each return?
Object.keys() returns an array of the object's keys; Object.values() returns an array of values; Object.entries() returns an array of [key, value] pairs.
What is object destructuring in JavaScript?
A syntax to extract properties into variables, e.g., const { name, age } = person; assigns person.name and person.age to local variables.
What is the difference between a shallow copy and a deep copy of an object?
A shallow copy duplicates only top-level properties (nested objects are shared by reference); a deep copy duplicates all nested levels so no references are shared.
How can you create a deep copy of a plain object in modern JavaScript?
Using structuredClone(obj), or for JSON-safe data JSON.parse(JSON.stringify(obj)).
What is the difference between String.slice() and String.substring()?
Both extract substrings, but slice() accepts negative indices (counting from the end) while substring() treats negative arguments as 0 and swaps arguments if start > end.
What are template literals and what two features do they add?
Strings delimited by backticks (`). They support multi-line strings and interpolation via ${expression}.
What is the difference between String.replace() and String.replaceAll()?
replace() replaces only the first match (unless given a global regex); replaceAll() replaces every occurrence of the substring or global regex.
How does a Map differ from a plain object as a key-value store?
A Map allows keys of any type (including objects), maintains insertion order, has a size property, and is directly iterable; object keys are coerced to strings/symbols.
What is a Set in JavaScript and what is its key property?
A Set is a collection of unique values; it automatically discards duplicates. Common use: deduplicating an array via [...new Set(arr)].
What is the difference between JSON.stringify() and JSON.parse()?
JSON.stringify() converts a JavaScript value into a JSON string; JSON.parse() converts a JSON string back into a JavaScript value.
What is the difference between document.getElementById() and document.querySelector()?
getElementById() selects one element by its id; querySelector() returns the first element matching any CSS selector.
What is the difference between querySelector() and querySelectorAll()?
querySelector() returns the first matching element (or null); querySelectorAll() returns a static NodeList of all matching elements.
What is the difference between innerHTML, textContent, and innerText?
innerHTML parses and returns/sets HTML markup; textContent returns/sets all raw text including hidden elements; innerText returns visible rendered text and triggers reflow.
How do you add an event listener to a DOM element?
element.addEventListener(eventType, callback), e.g., element.addEventListener('click', handler). Multiple listeners can be attached for the same event.
What is event bubbling and how does it relate to event delegation?
Bubbling means an event propagates from the target element up through its ancestors. Event delegation exploits this by attaching one listener to a parent to handle events from many children.
What does event.preventDefault() do versus event.stopPropagation()?
preventDefault() cancels the default browser action (e.g., form submit/link nav); stopPropagation() prevents the event from bubbling further up the DOM tree.
What is the difference between localStorage and sessionStorage?
Both store string key-value pairs per origin, but localStorage persists until explicitly cleared; sessionStorage is cleared when the page session/tab ends.
What is the difference between setTimeout() and setInterval()?
setTimeout() runs a callback once after a delay; setInterval() runs it repeatedly at fixed intervals until cleared with clearInterval().
What is the difference between Promise, async/await, and how do you handle errors with await?
async functions return a Promise; await pauses until a Promise settles. Errors are handled with try/catch around the await, equivalent to .catch() on the Promise.
What does the fetch() API return and how do you get JSON from the response?
fetch() returns a Promise resolving to a Response object. You call response.json() (which also returns a Promise) to parse the body as JSON.
What is the difference between Promise.all() and Promise.race()?
Promise.all() resolves when all promises resolve (rejecting if any rejects) and returns an array of results; Promise.race() settles as soon as the first promise settles.
Full Stack Web Development JavaScript Programming FAQ
What is in the Full Stack Web Development JavaScript Programming syllabus?
Full Stack Web Development JavaScript Programming is split into 4 chapters: JavaScript Core Syntax, Working with Data Structures, DOM and Browser APIs and Modern JavaScript (ES6+). Together they contain 16 topics and 44 sub-topics.
How many chapters are in Full Stack Web Development JavaScript Programming?
4 chapters, containing 16 topics and 44 sub-topics. The largest chapter is JavaScript Core Syntax, with 4 topics.
Are there flashcards for Full Stack Web Development JavaScript Programming?
Yes — a 50-card JavaScript Programming deck, printed in full in the flashcards section of this page and available in the Examius app with spaced repetition. The free plan covers one exam of your choice, including its flashcards; Examius Pro, a one-time purchase, unlocks every other exam and deck.