Function Scope এবং Block Scope

Scope এবং Closures - কফিস্ক্রিপ্ট (CoffeeScript) - Web Development

312

CoffeeScript, JavaScript-এর মতোই, scope বা পর্দা ধারণা সমর্থন করে। এটি বুঝতে সাহায্য করে ভেরিয়েবলগুলোর প্রাপ্যতা কোথায় এবং কিভাবে ব্যবহৃত হবে। CoffeeScript-এ function scope এবং block scope দুটি গুরুত্বপূর্ণ ধারণা রয়েছে, এবং এগুলোর মধ্যে পার্থক্য বোঝা গুরুত্বপূর্ণ।


১. Function Scope (ফাংশন স্কোপ)

Function scope হলো সেই পরিসর যেখানে একটি ফাংশনের ভেতরে ডিক্লেয়ার করা ভেরিয়েবল শুধুমাত্র ফাংশনের ভেতরেই প্রাপ্য থাকে। অর্থাৎ, যদি কোনো ভেরিয়েবল ফাংশনের মধ্যে ডিক্লেয়ার করা হয়, তবে তা শুধুমাত্র সেই ফাংশনটির মধ্যে ব্যবহৃত হতে পারে এবং ফাংশনটির বাইরের কোডে অ্যাক্সেস করা সম্ভব নয়।

উদাহরণ: Function Scope

myFunction = ->
  x = 10
  console.log x  # আউটপুট: 10

myFunction()
console.log x  # ত্রুটি: x is not defined

ব্যাখ্যা:

  • x ফাংশনের ভেতরে ডিক্লেয়ার করা হয়েছে, তাই এটি শুধুমাত্র myFunction ফাংশনের মধ্যে ব্যবহারযোগ্য।
  • ফাংশনটি বাইরে x অ্যাক্সেস করার চেষ্টা করলে ত্রুটি হবে।

JavaScript-এ কম্পাইল হওয়া কোড:

var myFunction;
myFunction = function() {
  var x;
  x = 10;
  return console.log(x);
};

myFunction();
console.log(x);  // Error: x is not defined

২. Block Scope (ব্লক স্কোপ)

Block scope হলো একটি ভেরিয়েবল যেটি একটি কোড ব্লকের মধ্যে ডিক্লেয়ার করা হয়, যেমন একটি if স্টেটমেন্ট, for লুপ বা অন্য কোনো ব্লক। let বা const ব্যবহারের মাধ্যমে আপনি ব্লক স্কোপ তৈরি করতে পারেন, কিন্তু CoffeeScript-এ সাধারণভাবে let ব্যবহার করতে হয় না, কারণ এটি JavaScript এর ES6 ফিচার। তবে CoffeeScript স্বয়ংক্রিয়ভাবে let বা const ব্যবহার করে ব্লক স্কোপ পরিচালনা করে।

উদাহরণ: Block Scope

if true
  x = 10
  console.log x  # আউটপুট: 10

console.log x  # ত্রুটি: x is not defined

ব্যাখ্যা:

  • x ব্লকের ভিতরে ডিক্লেয়ার করা হয়েছে, তাই এটি শুধুমাত্র if ব্লক এর ভেতরেই প্রাপ্য।
  • বাইরে x অ্যাক্সেস করার চেষ্টা করলে ত্রুটি হবে।

JavaScript-এ কম্পাইল হওয়া কোড:

if (true) {
  var x;
  x = 10;
  console.log(x);
}

console.log(x);  // Error: x is not defined

৩. Function Scope এবং Block Scope এর মধ্যে পার্থক্য

বৈশিষ্ট্যFunction ScopeBlock Scope
ভেরিয়েবল স্কোপফাংশনের ভিতরে ডিক্লেয়ার করা ভেরিয়েবলব্লকের ভিতরে ডিক্লেয়ার করা ভেরিয়েবল
ব্যবহারযোগ্যতাশুধুমাত্র ফাংশনের মধ্যে প্রাপ্যব্লক (যেমন if, for) এর ভিতরেই প্রাপ্য
ডিফল্টJavaScript-এ var দ্বারা ডিফল্টভাবে ব্যবহৃতJavaScript-এ let, const দ্বারা ব্যবহৃত
বাইরে অ্যাক্সেসফাংশনের বাইরে অ্যাক্সেস করা যায় নাব্লকের বাইরে অ্যাক্সেস করা যায় না

৪. CoffeeScript-এ let এবং const ব্যবহার

CoffeeScript-এর সর্বশেষ সংস্করণে, আপনি ব্লক স্কোপ তৈরি করার জন্য let এবং const ব্যবহার করতে পারেন। এটি JavaScript-এ ব্যবহৃত একই ভাবে কাজ করে, যেখানে ভেরিয়েবল শুধুমাত্র ব্লকের মধ্যে প্রাপ্য থাকে।

উদাহরণ: let এবং const এর ব্যবহার

if true
  let x = 10
  const y = 20
  console.log x  # আউটপুট: 10
  console.log y  # আউটপুট: 20

console.log x  # ত্রুটি: x is not defined
console.log y  # ত্রুটি: y is not defined

ব্যাখ্যা:

  • x এবং y ব্লকের ভিতরে ডিক্লেয়ার করা হয়েছে এবং ব্লকের বাইরে অ্যাক্সেস করা যাবে না।
  • let এবং const ভেরিয়েবলগুলি ব্লক স্কোপ তৈরি করতে সহায়ক।

সারাংশ

CoffeeScript-এ function scope এবং block scope দুটি গুরুত্বপূর্ণ ধারণা। function scope একটি ভেরিয়েবলকে শুধুমাত্র ফাংশনের মধ্যে প্রাপ্য রাখে, যখন block scope একটি ভেরিয়েবলকে একটি নির্দিষ্ট ব্লকের মধ্যে সীমাবদ্ধ করে। CoffeeScript-এ let এবং const ব্যবহার করে আপনি ব্লক স্কোপ পরিচালনা করতে পারেন, যা কোডের পাঠযোগ্যতা এবং স্থায়িত্ব বাড়ায়।

Content added By
Promotion

Are you sure to start over?

Loading...