Skip to Content

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 scopedblock scope ignore করে
কোড organizationবড় ফাংশন বা রিইউজেবল লজিকছোট শর্ত, লুপ ইত্যাদিতে সীমাবদ্ধতা
নিরাপত্তা ও isolationভালোআরো granular control

✅ Bottom Line:

  • function scope বড় context তৈরি করে।
  • block scope ছোট context তৈরি করে।
  • সবসময় letconst ব্যবহার করাই ভালো — কারণ ওরা block scoped হয়, var না।
Last updated on