JavaScript এর Scope.

Scope বা Scoping JavaScript এর গুরুত্বপূর্ণ একটি বিষয়। কোনটাকে লোকাল ভেরিয়েবল বলে কোনটাকে গ্লোবাল ভেরিয়েবল বলে এবং একটি ভেরিয়েবল বা ফাংশন অথবা অবজেক্টকে আপনি কোথায় কোথায় অ্যাক্সেস করতে পারবেন । এবং কোথায় কোথায় এক্সেস করতে পারবেন না । এইসব নিয়ে মাথা ঘামায় Scope .

তো চলেন Scope নিয়ে আলোচনা করি ।

জাভাস্ক্রিপ্টে দু'ধরনের এ Scope রয়েছে ।

1- Local Scope. 2- Global Scope.

Local Scope এর নাড়িভুঁড়ি ।

নাঈম আর ফাহিম দুই বন্ধু । কোচিং করতে তাদের এখন ফার্মগেট যেতে হবে । তারা দুজনে থাকে যাত্রাবাড়ীর কোন একটি ফ্ল্যাটে ।

রাস্তায় দুজনে আসার পরে তাদের সামনে তিনটি বাস দেখতে পেল । বাস তিনটের নাম হল :- ১-- বাহাদুর ২-- বিআরটিসি ৩-- সময়

এইদিকে নাঈম এর এক নম্বর চাপ দেওয়ার কারনে নাঈম ফাহিম কে বলল 'যে ফাহিম তুই গিয়ে বাসে বস আমি আসতেছি ।'

ফাহিম গিয়ে বিআরটিসি বাসে গিয়ে বসলো । কিছুক্ষণ পর নাঈম এসে দেখল যে ফাহিম বাসে উঠেছে । কিন্তু কোন বাসে উঠেছে সেইটা নাঈম জানেনা । তাই নাঈম প্রতিটি বাসে গিয়ে ফাহিমকে Call করল বা ডাকতে শুরু করলো ।

নাঈম প্রথম বাহাদুর গাড়িতে উঠলো উঠে ফাহিমকে ডাক দিল । কিন্তু ফাহিম যেহেতু বাহাদুর গাড়িতে নাই সেই ক্ষেত্রে বাহাদুর গাড়ির ড্রাইভার নাঈমকে বললো "এখানে ফাহিম নাই আপনি ভুল জায়গায় ডাকাডাকি করতেছেন " বা আপনি এটাকে প্রোগ্রামিং এর ভাষায় বলতে পারেন এরোর ।

নাঈম যখন দ্বিতীয়বার 'সময়' গাড়িতে খুঁজতে যাবে তখন সেই জায়গায় বাহাদুর গাড়ির মতন ঘটনা ঘটবে কারণ ফাহিম 'সময়' গাড়িতেও নেই ।

নাঈম যখন বিআরটিসি গাড়িতে ফাহিমকে Call করবে তখন ফাহিম বলবে ' আমি আছি ' ।

আর ফাহিম হলো বিআরটিসি বাসের Local Scope বা ভেরিয়েবল ।

ফাহিমকে যদি বলি বিআরটিসি বাসের প্রথম সারির প্রথম সিটে বসতে তাহলে সে সেখানে বসতে পারবে । আবার যদি বলি দ্বিতীয় সারির তৃতীয় সারিতে বসেতে তাহলে সে সেখানেও বসতে পারবে

কিন্তু তাকে অন্য কোন বাসের অন্য কোন একটি সিটে বসতে বললে সে বসতে পারবে না । কারণ সে বিআরটিসি বাসে আছে অন্য কোন বাসে নাই ।

আসুন এখন একটু কোড করে বোঝার চেষ্টা করি ।

function localScope() { var local = " আমি এখন BRTC তে আছি । " ; console.log(local); }

এখন যদি আমরা উপরের function কে Call করি । localScope();

তাহলে আউটপুট পাবো। আমি এখন BRTC তে আছি ।

যদি function এর মধ্য যে local ভেরিয়েবলটা আছে তাকে যদি বাহিরে নিয়ে এসে Call করি । তাহলে আমাদের এরোর দেখাবে।

যেমন : console.log(local);

এভাবে Variable call করলে Error দেখাবে ।

কারন , Local variable টা । যেটা আমরা ডিক্লেয়ার করেছি । সেটা localScope(); function এর local ভেরিয়েবল । আমরা চাইলে Local Variable কে localScope(); ফাংশনের যে কোন স্থানে ব্যবহার করতে পারবো।

এখন যদি কেউ এসে আপনাকে বলে local Scope কি ? খায় না মাথা দেয় ?

তখন আপনি বলবেন । :- সাধারণত ফাংশনের ভেতরে ডিক্লেয়ারকৃত ভেরিয়েবল গুলো হলো ওই ফাংশনের local Scope বা variable ।

Global Scope এর চৌদ্দগুষ্টি ।

জাফরের একটি বিড়াল আছে যার নাম হলো - Tom । সে তার বাসায় দিব্যই হেটে ,চলে, বেড়ায় । একদম স্বাধীন ।

জাফর যখন বেলকনিতে বসে বই পড়ে তখন Tom কে ডাক দিলে সে বেলকনিতে চলে আসে । আবার যখন ছাদে কবুতরকে খাবার দিতে যায় । সেখান থেকে যদি Tom কে ডাক দেয় তাহলে Tom ছাদে চলে আসে । এইযে জাফরের Tom কে যেখান, সেখান থেকে Call করলেই Tom চলে আসে এইটা কে আমরা তুলনা করতে পারি Global Scope এর সাথে ।

আসুন এবার একটু প্রোগ্রামিংয়ের ভিতরে আসুন ।

এখন যদি টাকলা মুরাদ এসে বলে " এব্যাডা Global Scope কারে কয় ? না কইতে পারলে খুলি উরাই দিমু । "

তাহলে আপনি র্নিভয়ে বলবেন । :- কোন Variable কে যদি function এর ভিতরে ডিক্লেয়ার না করে । তাকে যদি function এর বাহিরে ডিক্লেয়ার করা হয় তখন তাকে Global Variable বা Global Scope বলে ।

কোড দ্বারা Global Scope কে বুজার চেষ্টা করি ।

var tom = " টম এদিকে আসো ।"; function golobalScope() { console.log("ফাংশনের ভিতরে Global Scope : " + tom ); }

এই function কে যদি কল করি । golobalScope();

তাহলে আউটপুট পাবো । ফাংশনের ভিতরে Global Scope :টম এদিকে আসো ।

ফাংশনের বাহিরে যেভাবে ডিক্লেয়ার করে । console.log("ফাংশনের বাহিরে Global Scope : " + tom ); তাহলে আউটপুট পাবো । ফাংশনের বাহিরে Global Scope :টম এদিকে আসো ।

আজকে এই পর্যন্তই দেখে হবে অন্য কোন আর্টিকেলে । ভালো লাগলে শেয়ার,লাইক, কমেন্ট করতে ভুলবেন না ।