1. Variables


let x = 10; // Declare a variable
const PI = 3.14; // Declare a constant
var y = 20; // Declare a variable (old syntax)

2. Data Types


let x = 10; // Number
let y = "Hello"; // String
let z = true; // Boolean
let a = null; // Null
let b = undefined; // Undefined
let c = [1, 2, 3]; // Array
let d = { name: "John", age: 30 }; // Object

3. Operators


let x = 10;
let y = 20;
console.log(x + y); // Addition
console.log(x - y); // Subtraction
console.log(x * y); // Multiplication
console.log(x / y); // Division
console.log(x % y); // Modulus
console.log(x ** y); // Exponentiation

4. Conditional Statements


let x = 10;
if (x > 5) {
console.log("x is greater than 5");
} else {
console.log("x is less than or equal to 5");
}

5. Loops


for (let i = 0; i < 5; i++) {
console.log(i);
}

6. Functions


function greet(name) {
console.log(`Hello, ${name}!`);
}
greet("John");

7. Arrays


let fruits = ["apple", "banana", "cherry"];
console.log(fruits[0]); // Access an element
fruits.push("orange"); // Add an element
fruits.pop(); // Remove an element

8. Objects


let person = { name: "John", age: 30 };
console.log(person.name); // Access a property
person.country = "USA"; // Add a property
delete person.age; // Remove a property

9. DOM Manipulation


let element = document.getElementById("myElement");
element.innerHTML = "Hello, World!";
element.style.color = "red";

10. Events


let button = document.getElementById("myButton");
button.addEventListener("click", function() {
console.log("Button clicked!");
});

11. JSON


let data = { name: "John", age: 30 };
let jsonData = JSON.stringify(data);
console.log(jsonData); // Output: {"name":"John","age":30}

12. AJAX


let xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.example.com/data", true);
xhr.onload = function() {
if (xhr.status === 200) {
console.log(xhr.responseText);
}
};
xhr.send();

13. Promises


let promise = new Promise(function(resolve, reject) {
// Do something
resolve("Success!");
});
promise.then(function(result) {
console.log(result); // Output: Success!
});

14. Async/Await


async function myFunction() {
let result = await myPromise();
console.log(result); // Output: Success!
}

15. ES6 Classes


class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
let person = new Person("John", 30);
person.greet(); // Output: Hello, my name is John and I am 30 years old.

16. ES6 Modules


// mymodule.js
export function greet(name) {
console.log(`Hello, ${name}!`);
}
// main.js
import { greet } from "./mymodule.js";
greet("John"); // Output: Hello, John!

17. ES6 Destructuring


let person = { name: "John", age : 30 };
let { name, age } = person; // Destructure properties
console.log(name); // Output: John
console.log(age); // Output: 30

18. Spread Operator


let arr1 = [1, 2, 3];
let arr2 = [...arr1, 4, 5]; // Spread elements into a new array
console.log(arr2); // Output: [1, 2, 3, 4, 5]

19. Rest Parameters


function sum(...numbers) {
return numbers.reduce((acc, curr) => acc + curr, 0);
}
console.log(sum(1, 2, 3, 4)); // Output: 10

20. Template Literals


let name = "John";
let greeting = `Hello, ${name}!`; // Use backticks for string interpolation
console.log(greeting); // Output: Hello, John!

21. Arrow Functions


const add = (a, b) => a + b; // Shorter syntax for functions
console.log(add(2, 3)); // Output: 5

22. Set and Map


let mySet = new Set([1, 2, 3, 3]); // Set only stores unique values
console.log(mySet); // Output: Set(3) { 1, 2, 3 }

let myMap = new Map();
myMap.set("name", "John");
console.log(myMap.get("name")); // Output: John

23. Error Handling


try {
throw new Error("Something went wrong!");
} catch (error) {
console.log(error.message); // Output: Something went wrong!
}

24. Local Storage


localStorage.setItem("key", "value"); // Store data
let value = localStorage.getItem("key"); // Retrieve data
console.log(value); // Output: value

25. Session Storage


sessionStorage.setItem("sessionKey", "sessionValue"); // Store session data
let sessionValue = sessionStorage.getItem("sessionKey"); // Retrieve session data
console.log(sessionValue); // Output: sessionValue

26. Fetch API


fetch("https://api.example.com/data")
.then(response => response.json())
.then(data => console.log(data));

27. Event Delegation


document.getElementById("parent").addEventListener("click", function(event) {
if (event.target.matches(".child")) {
console.log("Child clicked!");
}
});

28. Throttle and Debounce


// Throttle function
function throttle(func, limit) {
let lastFunc;
let lastRan;
return function() {
const context = this;
const args = arguments;
if (!lastRan) {
func.apply(context, args);
lastRan = Date.now();
} else {
clearTimeout(lastFunc);
lastFunc = setTimeout(function() {
func.apply(context, args);
lastRan = Date.now();
}, limit - (Date.now() - lastRan));
}
};
}

// Debounce function
function debounce(func, delay) {
let timeout;
return function() {
const context = this;
const args = arguments;
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(context, args), delay);
};
}

29. Regular Expressions


let regex = /[a-z]+/; // Regular expression to match lowercase letters
console.log(regex.test("hello")); // Output: true

30. Array Methods


let numbers = [1, 2, 3, 4, 5];
let doubled = numbers.map(num => num * 2); // Map
let filtered = numbers.filter(num => num > 2); // Filter
console.log(doubled); // Output: [2, 4, 6, 8, 10]
console.log(filtered); // Output: [3, 4, 5]

31. String Methods


let str = "Hello, World!";
console.log (str.length); // Output: 13
console.log(str.toUpperCase()); // Output: HELLO, WORLD!
console.log(str.includes("World")); // Output: true

32. Date and Time


let date = new Date();
console.log(date); // Current date and time
console.log(date.getFullYear()); // Output: Current year

33. SetTimeout and SetInterval


setTimeout(() => {
console.log("Executed after 2 seconds");
}, 2000); // Execute after 2 seconds

setInterval(() => {
console.log("Executed every 1 second");
}, 1000); // Execute every 1 second

34. Closures


function outerFunction() {
let outerVariable = "I'm from outer function";
return function innerFunction() {
console.log(outerVariable);
};
}
const innerFunc = outerFunction();
innerFunc(); // Output: I'm from outer function

35. IIFE (Immediately Invoked Function Expression)


(function() {
console.log("I am an IIFE");
})(); // Output: I am an IIFE

36. Prototypes


function Person(name) {
this.name = name;
}
Person.prototype.greet = function() {
console.log(`Hello, my name is ${this.name}`);
};
const john = new Person("John");
john.greet(); // Output: Hello, my name is John

37. Object.create()


const animal = {
speak() {
console.log("Animal speaks");
}
};
const dog = Object.create(animal);
dog.speak(); // Output: Animal speaks

38. Object.assign()


const target = { a: 1 };
const source = { b: 2, c: 3 };
const returnedTarget = Object.assign(target, source);
console.log(returnedTarget); // Output: { a: 1, b: 2, c: 3 }

39. Array Destructuring


const arr = [1, 2, 3];
const [first, second] = arr; // Destructure array
console.log(first); // Output: 1
console.log(second); // Output: 2

40. Object Destructuring


const obj = { x: 1, y: 2 };
const { x, y } = obj; // Destructure object
console.log(x); // Output: 1
console.log(y); // Output: 2

41. Spread Syntax with Objects


const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 }; // Spread properties into a new object
console.log(obj2); // Output: { a: 1, b: 2, c: 3 }

42. Array.from()


const str = "hello";
const arr = Array.from(str); // Convert string to array
console.log(arr); // Output: ['h', 'e', 'l', 'l', 'o']

43. Array.prototype.includes()


const arr = [1, 2, 3];
console.log(arr.includes(2)); // Output: true
console.log(arr.includes(4)); // Output: false

44. Array.prototype.reduce()


const arr = [1, 2, 3, 4];
const sum = arr.reduce((acc, curr) => acc + curr, 0); // Sum of array elements
console.log(sum); // Output: 10

45. Array.prototype.forEach()


const arr = [1, 2, 3];
arr.forEach(num => console.log(num)); // Output: 1 2 3

46. Array.prototype.find()


const arr = [1, 2, 3, 4];
const found = arr.find(num => num > 2); // Find first element greater than 2
console.log(found); // Output: 3

47. Array.prototype.filter()


const arr = [1 , 2, 3, 4];
const filtered = arr.filter(num => num > 2); // Filter elements greater than 2
console.log(filtered); // Output: [3, 4]

48. Array.prototype.map()


const arr = [1, 2, 3];
const doubled = arr.map(num => num * 2); // Double each element
console.log(doubled); // Output: [2, 4, 6]

49. Array.prototype.some()


const arr = [1, 2, 3, 4];
const hasEven = arr.some(num => num % 2 === 0); // Check if any element is even
console.log(hasEven); // Output: true

50. Array.prototype.every()


const arr = [1, 2, 3, 4];
const allEven = arr.every(num => num % 2 === 0); // Check if all elements are even
console.log(allEven); // Output: false

51. Array.prototype.splice()


const arr = [1, 2, 3, 4];
arr.splice(1, 2); // Remove 2 elements starting from index 1
console.log(arr); // Output: [1, 4]

52. Array.prototype.slice()


const arr = [1, 2, 3, 4];
const sliced = arr.slice(1, 3); // Get elements from index 1 to 3 (not inclusive)
console.log(sliced); // Output: [2, 3]

53. Array.prototype.concat()


const arr1 = [1, 2];
const arr2 = [3, 4];
const combined = arr1.concat(arr2); // Combine two arrays
console.log(combined); // Output: [1, 2, 3, 4]

54. Array.prototype.join()


const arr = [1, 2, 3];
const joined = arr.join(", "); // Join elements into a string
console.log(joined); // Output: "1, 2, 3"

55. String.prototype.split()


const str = "Hello, World!";
const words = str.split(", "); // Split string into an array
console.log(words); // Output: ["Hello", "World!"]

56. String.prototype.replace()


const str = "Hello, World!";
const newStr = str.replace("World", "JavaScript"); // Replace substring
console.log(newStr); // Output: "Hello, JavaScript!"

57. String.prototype.trim()


const str = " Hello, World! ";
const trimmed = str.trim(); // Remove whitespace
console.log(trimmed); // Output: "Hello, World!"

58. String.prototype.charAt()


const str = "Hello";
const char = str.charAt(0); // Get character at index 0
console.log(char); // Output: "H"

59. String.prototype.indexOf()


const str = "Hello, World!";
const index = str.indexOf("World"); // Get index of substring
console.log(index); // Output: 7

60. String.prototype.includes()


const str = "Hello, World!";
const hasWorld = str.includes("World"); // Check if substring exists
console.log(hasWorld); // Output: true

61. Date.prototype.getDate()


const date = new Date();
console.log(date.getDate()); // Get day of the month

62. Date.prototype.getMonth()


const date = new Date();
console.log(date.getMonth()); // Get month (0-11)

63. Date.prototype.getFullYear()


const date = new Date();
console.log(date.getFullYear()); // Get full year

64. Date.prototype.getTime()


const date = new Date();
console.log(date.getTime()); // Get timestamp

65. Date.prototype.setDate()


const date = new Date();
date.setDate(15); // Set day of the month
console.log(date); // Output: Date object with day set to 15

66. Date.prototype.setMonth()


date.setMonth(5); // Set month (0-11)
console.log(date); // Output: Date object with month set to June

67. Date.prototype.setFullYear()


date.setFullYear(2025); // Set full year
console.log(date); // Output: Date object with year set to 2025

68. Date.prototype.toISOString()


console.log(date.toISOString()); // Output: ISO string representation of the date

69. Math Object


console.log(Math.PI); // Output: 3.141592653589793
console.log(Math.sqrt(16)); // Output: 4
console.log(Math.random()); // Output: Random number between 0 and 1

70. Set and Get Cookies


document.cookie = "username=John"; // Set a cookie
console.log(document.cookie); // Get all cookies

71. Fetching Data with Axios


axios.get("https://api.example.com/data")
.then(response => console.log(response.data))
.catch(error => console.error(error));

72. Using Local Storage


localStorage.setItem("key", "value"); // Store data
let value = localStorage.getItem("key"); // Retrieve data
console.log(value); // Output: value

73. Using Session Storage


sessionStorage.setItem("sessionKey", "sessionValue"); // Store session data
let sessionValue = sessionStorage.getItem("sessionKey"); // Retrieve session data
console.log(sessionValue); // Output: sessionValue

74. Using Web Workers


const worker = new Worker("worker.js"); // Create a new web worker
worker.onmessage = function(event) {
console.log(event.data); // Handle message from worker
};
worker.postMessage("Hello, Worker!"); // Send message to worker

75. Using Service Workers


if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js')
.then(registration => console.log('Service Worker registered:', registration))
.catch(error => console.error('Service Worker registration failed:', error));
}

76. Using IndexedDB


let request = indexedDB.open("myDatabase", 1);
request.onsuccess = function(event) {
let db = event.target.result;
console.log("Database opened successfully");
};

77. Using Fetch API with Async/Await


async function fetchData() {
try {
let response = await fetch("https://api.example.com/data");
let data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
fetchData();

78. Using the Window Object


console.log(window.innerWidth); // Get the width of the window
console.log(window.innerHeight); // Get the height of the window

79. Using the Document Object


console.log(document.title); // Get the title of the document
document.title = "New Title"; // Set a new title

80. Using the History Object


history.pushState({}, "New Page", "/new-page"); // Add a new entry to the history

81. Using the Location Object


console.log(location.href); // Get the current URL
location.href = "https://www.example.com"; // Redirect to a new URL

82. Using the Navigator Object


console.log(navigator.userAgent); // Get the user agent string

83. Using the Screen Object


console.log(screen.width); // Get the width of the screen
console.log(screen.height); // Get the height of the screen

84. Using the Console Object


console.log("Hello, World!"); // Log a message to the console
console.error("This is an error message"); // Log an error message
console.warn("This is a warning message"); // Log a warning message

85. Using the Debugger


debugger; // Pause execution for debugging

86. Using the Fetch API for POST Requests


fetch("https://api.example.com/data", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({ name: "John" })
})
.then(response => response.json())
.then(data => console.log(data));

87. Using the XMLHttpRequest for AJAX


let xhr = new XMLHttpRequest();
xhr.open("POST", "https://api.example.com/data", true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onload = function() {
if (xhr.status === 200) {
console.log(xhr.responseText);
}
};
xhr.send(JSON.stringify({ name: "John" }));

88. Using the Event Object


document.addEventListener("click", function(event) {
console.log(event.target); // Log the clicked element
});

89. Using the Mouse Events


document.addEventListener("mousemove", function(event) {
console.log(`Mouse position: ${event.clientX}, ${event.clientY}`);
});

90. Using the Keyboard Events


document.addEventListener("keydown", function(event) {
console.log(`Key pressed: ${event.key}`);
});

91. Using the Touch Events


document.addEventListener("touchstart", function(event) {
console.log("Touch started");
});

92. Using the Resize Event


window.addEventListener("resize", function() {
console.log("Window resized");
});

93. Using the Scroll Event


window.addEventListener("scroll", function() {
console.log("Scrolled");
});

94. Using the Focus and Blur Events


let input = document.getElementById("myInput");
input.addEventListener("focus", function() {
console.log("Input focused");
});
input.addEventListener("blur", function() {
console.log("Input blurred");
});

95. Using the Change Event


let select = document.getElementById("mySelect");
select.addEventListener("change", function() {
console.log(`Selected value: ${select.value}`);
});

96. Using the Submit Event


let form = document.getElementById("myForm");
form.addEventListener("submit", function(event) {
event.preventDefault(); // Prevent form submission
console.log("Form submitted");
});

97. Using the Load Event


window.addEventListener("load", function() {
console.log("Page fully loaded");
});

98. Using the Unload Event


window.addEventListener("unload", function() {
console.log("Page is unloading");
});

99. Using the BeforeUnload Event


window.addEventListener("beforeunload", function(event) {
event.preventDefault(); // Show confirmation dialog
event.returnValue = ''; // Required for Chrome
});

100. Using the Visibility Change Event


document.addEventListener("visibilitychange", function() {
if (document.hidden) {
console.log("Page is hidden");
} else {
console.log("Page is visible");
}
});