JavaScript Scope

JavaScript Scope

JavaScript Scope কি? 

Scope বলতে যা বুঝায় তা হলো, আমরা কোড লেখার সময় যে variable গুলো declared করি, সেই variable গুলো কোডের কোথায় ডিক্লেয়ার করলে সেটা কোডের কোন কোন জায়গা থেকে কতোটুক accessible হবে এবং কোডের কোন কোন জায়গায় সেগুলো বাবহার করা যাবে, মূলত সেই বিষয় গুলোই define হয় JavaScript Scope এর মাধ্যমে।

JavaScript এ ৩ ধরণের scope রয়েছে:

  • Block scope
  • Function scope
  • Global scope

Block Scope : ES6 (2015) -এর আগে JavaScript -এ শুধু Global Scope এবং Function Scope ছিল। ES6 -আসার পর আমরা let এবং const নামের আরও দুইটি গুরুত্বপূর্ণ keywords -এর সাথে পরিচিত হই। মূলত এই দুইটি keywords আসার পরেই JavaScript এ  Block Scope-এর আবির্ভাব ঘটে। ( 'ES6' হচ্ছে JavaScript এর Modern Version)। Block Scope এর মূল বৈশিষ্ট্য হচ্ছে { } -block এর মধ্যে যদি আমরা কোনো variable ডিক্লেয়ার করি তাহলে সেই variable কে block এর বাইরে থেকে access করা যায় না।

যেমন:

                 {
                       let x = 5;
                 }

এই  x -variable শুধুমাত্র { } -এর মধ্যেই accessible। অর্থাৎ { }- block এর বাইরে এই variable কে বাবহার করা যাবে না। কিন্তু এইখানে একটা গুরুত্বপূর্ণ কথা আছে, variable কে যদি let keyword দিয়ে ডিক্লেয়ার না করে var keyword দিয়ে ডিক্লেয়ার করা হয়, তাহলে কিন্তু তখন আর Block Scope কাজ করবে না। অর্থাৎ var keyword দিয়ে { } -এর মধ্যে কোনো variable ডিক্লেয়ার করলে সেটা block এর বাইরেও বাবহার করা যাবে। যেমন:

                  {
                         var x = 3;
                  }

এই  x -variable { } -এর বাইরেও accessible।

 

Function Scope : Function scope এর বিষয়টা হচ্ছে এই রকম যে, যদি একটি function এর মধ্যে আমরা কোনো variable ডিফাইন করি তাহলে সেই variable কেবল ঐ function এর মধ্যেই acccessible হবে। এক্ষেত্রে var, const অথবা let -যে  keyword ই বাবহার করে ডিফাইন করা হোক না কেন, সেই variable কে বাইরে থেকে access করা যাবে না।

 যেমন:

                   function myFunction () {
                           var studentName = "Roni";    // Function Scope
                   }
                  or
                   function myFunction () {
                           let studentName = "Roni";     // Function Scope
                   }
                  or 
                  function myFunction () {
                           const studentName = "Roni";    // Function Scope
                   }

 

 

Global Scope : যদি কোনো variable -কে কোনো একটি function অথবা কোনো { } - এর মধ্যে ডিক্লেয়ার না করে কোনো 'open space' -অর্থাৎ Globaly ডিক্লেয়ার করা হয়, তাহলে সেটিকে Global Scope বলা হবে। এক্ষেত্রে var, const অথবা let -যে  keyword ই বাবহার করে ডিফাইন করা হোক না কেন, সেই variable কে কোডের যেকোনো জায়গা থেকেই access করা যাবে।
যেমন:

            var a = 7;                //Global Scope

            let x = 6;                //Global Scope

            const i = 8 ;           //Global Scope

      

আশা করি সবাই বুঝতে পেরেছেন, ধন্যবাদ।