JavaScript Scope Explained with var let and const

JavaScript এর ১০টি গুরুত্বপূর্ণ কনসেপ্ট যেগুলো ওয়েব ডেভেলপারদের জানা উচিত

JavaScript হল ওয়েব ডেভেলপমেন্টের অন্যতম গুরুত্বপূর্ণ ভাষা। যদি আপনি একজন ওয়েব ডেভেলপার হন, তবে কিছু মৌলিক ও অ্যাডভান্সড কনসেপ্ট জানা জরুরি। এখানে JavaScript-এর ১০টি গুরুত্বপূর্ণ কনসেপ্ট নিয়ে আলোচনা করা হলো:

1. ভেরিয়েবল এবং স্কোপ (Variable & Scope)

JavaScript-এ তিন ধরনের ভেরিয়েবল ডিক্লেয়ার করা যায়: var, let, এবং const। স্কোপ তিন প্রকার:

  • Global Scope: স্ক্রিপ্টের যেকোনো জায়গা থেকে এক্সেস করা যায়।
  • Function Scope: ফাংশনের মধ্যে ডিক্লেয়ার করা ভেরিয়েবল শুধুমাত্র ঐ ফাংশনের মধ্যেই অ্যাক্সেস করা যায়।
  • Block Scope: let এবং const ব্লকের মধ্যে সীমাবদ্ধ থাকে।
function example() {
    var x = 10;
    if (true) {
        let y = 20;
        console.log(y); // 20
    }
    console.log(x); // 10
    // console.log(y); // ReferenceError: y is not defined
}
example();

2. Hoisting

Hoisting হল JavaScript-এর একটি মেকানিজম যেখানে ভেরিয়েবল ও ফাংশনের ডিক্লারেশন স্বয়ংক্রিয়ভাবে উপরে উঠে যায়।

console.log(a); // undefined
var a = 5;

3. Closures

Closures হল এমন একটি ফাংশন যা তার প্যারেন্ট স্কোপের ভেরিয়েবল অ্যাক্সেস করতে পারে, এমনকি প্যারেন্ট ফাংশন এক্সিকিউশন শেষ হলেও।

function outerFunction(outerVariable) {
    return function innerFunction(innerVariable) {
        console.log(`Outer: ${outerVariable}, Inner: ${innerVariable}`);
    };
}

const newFunction = outerFunction("Hello");
newFunction("World"); // Output: Outer: Hello, Inner: World

4. Callback Functions

Callback হল একটি ফাংশন যা আরেকটি ফাংশনের আর্গুমেন্ট হিসেবে পাস করা হয় এবং নির্দিষ্ট কাজ শেষে কল করা হয়।

function greet(name, callback) {
    console.log(`Hello, ${name}`);
    callback();
}

greet("Mostafa", function() {
    console.log("Welcome to JavaScript!");
});

5. Promises & Async/Await

JavaScript-এ অ্যাসিনক্রোনাস অপারেশন পরিচালনার জন্য Promise এবং async/await ব্যবহার করা হয়।

function fetchData() {
    return new Promise((resolve, reject) => {
        setTimeout(() => resolve("Data fetched!"), 2000);
    });
}

async function getData() {
    const data = await fetchData();
    console.log(data);
}

getData();

6. Event Loop & Asynchronous JavaScript

JavaScript-এর Event Loop হল সেই মেকানিজম যা callback queue এবং microtask queue পরিচালনা করে, যাতে অ্যাসিনক্রোনাস কোড সঠিকভাবে এক্সিকিউট হয়।

7. Prototype & Prototypal Inheritance

JavaScript-এ অবজেক্ট ইনহেরিটেন্সের জন্য প্রোটোটাইপ ব্যবহার করা হয়।

function Person(name) {
    this.name = name;
}

Person.prototype.greet = function() {
    console.log(`Hello, my name is ${this.name}`);
};

const person1 = new Person("Mostafa");
person1.greet();

8. Destructuring & Spread/Rest Operators

Destructuring এবং Spread/Rest Operators দিয়ে সহজেই ডাটা ম্যানিপুলেট করা যায়।

const user = { name: "Mostafa", age: 25 };
const { name, age } = user;
console.log(name, age);

9. Higher-Order Functions & Functional Programming

Higher-order functions হল এমন ফাংশন যা অন্য ফাংশনকে প্যারামিটার হিসেবে নেয় বা রিটার্ন করে।

const numbers = [1, 2, 3, 4, 5];
const squared = numbers.map(num => num * num);
console.log(squared);

10. Modules & ES6 Import/Export

JavaScript-এ কোড অর্গানাইজ করার জন্য import/export মডিউল ব্যবহার করা হয়।

// utils.js
export function greet(name) {
    return `Hello, ${name}`;
}

// main.js
import { greet } from "./utils.js";
console.log(greet("Mostafa"));

উপসংহার

এই ১০টি কনসেপ্ট বুঝতে পারলে আপনি JavaScript-এ আরও দক্ষ হয়ে উঠবেন। ওয়েব ডেভেলপার হিসেবে এগুলো জানা অত্যন্ত গুরুত্বপূর্ণ।

আপনার মতামত জানাতে ভুলবেন না! 😊

Tags: No tags

2 Responses

Add a Comment

Your email address will not be published. Required fields are marked *