Function Scope vs Block Scope
Function scope আর Block scope—দু’টোই local scope-এর টাইপ, কিন্তু ব্যবহারে পার্থক্য আছে।
🧠 কনসেপ্ট:
-
Function Scope:
কোনো ভ্যারিয়েবল যদি function এর ভিতরে declare করা হয় (
var
,let
, বাconst
দিয়ে), তাহলে সেটা সেই ফাংশনের ভিতরে যেকোনো জায়গা থেকে অ্যাক্সেস করা যাবে। বাইরে থেকে যাবে না। -
Block Scope:
let
বাconst
দিয়ে যদি কোনো ভ্যারিয়েবল declare করা হয়if
,for
, বা{}
এর মতো কোনো ব্লকের ভিতরে — তাহলে সেটার স্কোপ শুধু ঐ ব্লক পর্যন্ত সীমাবদ্ধ।
⚠️ কিন্তু var দিয়ে declare করলে সেটা block scope মানে না, শুধুমাত্র function scope follow করে।
🔹 উদাহরণ – Function Scope
function greet() {
var message = "Hello!";
console.log(message); // ✅ কাজ করবে
}
console.log(message); // ❌ ReferenceError: message is not defined
message শুধু greet() ফাংশনের ভিতরে visible — বাইরের কোথাও access করা যাবে না।
🔹 উদাহরণ – Block Scope
{
let name = "Rahim";
const age = 20;
console.log(name); // ✅ "Rahim"
}
console.log(name); // ❌ ReferenceError: name is not defined
name আর age শুধু ব্লকের ভিতরে accessible।
⚠️ var
behaves differently
{
var city = "Dhaka";
}
console.log(city); // ✅ "Dhaka" — কারণ `var` block scope মানে না
✍️ সংক্ষেপে:
বৈশিষ্ট্য | 🟦 Function Scope | 🟩 Block Scope |
---|---|---|
কোথায় কাজ করে | ফাংশনের ভিতরে | {} ব্লকের ভিতরে |
কিভাবে define হয় | var , let , const | শুধুমাত্র let , const |
var এর আচরণ | শুধু function scoped | block scope ignore করে |
কোড organization | বড় ফাংশন বা রিইউজেবল লজিক | ছোট শর্ত, লুপ ইত্যাদিতে সীমাবদ্ধতা |
নিরাপত্তা ও isolation | ভালো | আরো granular control |
✅ Bottom Line:
function
scope বড় context তৈরি করে।block
scope ছোট context তৈরি করে।- সবসময়
let
ওconst
ব্যবহার করাই ভালো — কারণ ওরা block scoped হয়,var
না।
Last updated on