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 definedmessage শুধু greet() ফাংশনের ভিতরে visible — বাইরের কোথাও access করা যাবে না।
🔹 উদাহরণ – Block Scope
{
let name = "Rahim";
const age = 20;
console.log(name); // ✅ "Rahim"
}
console.log(name); // ❌ ReferenceError: name is not definedname আর 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:
functionscope বড় context তৈরি করে।blockscope ছোট context তৈরি করে।- সবসময়
letওconstব্যবহার করাই ভালো — কারণ ওরা block scoped হয়,varনা।
Last updated on