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`);
}
});