Prototypal Inheritance and Classes function Person(name) { this.name = name; } Person.prototype.sayHi = function () { console.log("Hi, I'm " + this.name); }; class Student extends Person { constructor(name, grade) { super(name); this.grade = grade; } showGrade() { console.log(`${this.name}'s grade is ${this.grade}`); } } const s = new Student("Roshini", "A"); s.sayHi(); s.showGrade(); Object and Array Destructuring const user = { name: "Roshini", age: 20 }; const { name, age } = user; console.log(name, age); const arr = [10, 20]; const [a, b] = arr; console.log(a, b); Modules Steps: Create math.js: export function add(x, y) { return x + y; } Create main.js: import { add } from "./math.js"; console.log(add(5, 3)); Add <script type="module" src="main.js"></script> in HTML Function Generators and Symbols function* countUp() { yield 1; yield 2; yield 3; } let gen = countUp(); console.log(gen.next().value); const sym1 = Symbol("id"); console.log(sym1 === Symbol("id")); // false Closure function outer() { let count = 0; return function () { count++; console.log("Count:", count); }; } const counter = outer(); counter(); // 1 counter(); // 2