DEV Community

Cover image for জাভাস্ক্রিপ্ট — var, let, const
Bipon Biswas
Bipon Biswas

Posted on

জাভাস্ক্রিপ্ট — var, let, const

ES6 পড়ুন (এটি ECMAScript 2015 নামেও পরিচিত) জাভাস্ক্রিপ্টের সিনট্যাক্সের চেয়ে বড় পরিবর্তন হয়েছে এবং জেএসে নতুন বৈশিষ্ট্য নিয়ে আসছে যা এর আগে ছিল না…

ES6 জানা গুরুত্বপূর্ণ কারণ এর একটি কারণ হ’ল এটি জাভাস্ক্রিপ্টকে আরও ভাল লেখা এবং সহজ করে তোলে এবং একই সাথে আজকের আধুনিক ওয়েব প্রযুক্তির সাথে রিঅ্যাক্ট(React), নোড.জেস(Node.js) এবং আরও অনেকগুলি ব্যবহার করা হচ্ছে ।

এই পোস্টে, আপনি নতুন কীওয়ার্ড শিখতে পারবেন যা ES6 ভ্যারিয়েবল ডিক্লারেশন্স জন্য নিয়ে আসছে: let এবং const । তবে প্রথমে, আসুন কী কী ভুল ছিল তা ব্যাখ্যা করি var

var সমস্যা কি ছিল?

var ভেরিয়েবল ঘোষণার জন্য আমাদের কাছে ইতিমধ্যে জেএসে কীওয়ার্ড ছিল । তাহলে কেন ES6 অতিরিক্ত কীওয়ার্ড চালু করেছে?

সমস্যাটি বোঝার জন্য var প্রথমে আপনাকে বুঝতে হবে যে Scope কী।

Scope determines the accessibility of variables, objects, and functions from different parts of the code. - w3schools

জাভাস্ক্রিপ্টে 3 ধরণের স্কোপ (Scope) রয়েছে:

  • ফাংশন (লোকাল ) সুযোগ
  • গ্লোবাল স্কোপ (Scope)
  • ব্লক স্কোপ (Scope) (ইএস 6 সহ নতুন)

var supports function & global scope, but not block scope.

ফাংশন ( লোকাল ) স্কোপ
যখন কোনও ফাংশনের অভ্যন্তরে কোনও ভেরিয়েবল সংজ্ঞায়িত করা হয় , এটি কেবলমাত্র সেই ফাংশনের জন্য লোকাল হবে এবং বাইরে ব্যবহার করা যাবে না:

function local() { 
  var number = 1; 
  console.log(number); // 1 gets printed 
} 
console.log(number); // undefined
Enter fullscreen mode Exit fullscreen mode

Alt Text

গ্লোবাল স্কোপ
যখন কোনও ফাংশনের বাইরে কোনও ভেরিয়েবল ঘোষণা করা হয় বা var কীওয়ার্ড ছাড়াই তখন তা গ্লোবাল হয়ে যাবে এবং যে কোনও জায়গা থেকে অ্যাক্সেসযোগ্য হবে:

var number = 1; 
function local() { 
   console.log(number); // 1 gets printed 
} 
console.log(number); // 1 gets printed
Enter fullscreen mode Exit fullscreen mode

ব্লক স্কোপ

curly braces { }, if-else cases এবং for loops হয় block-scoped

Example

if(true){
   let letVariable = "This is let Variable";
}
console.log(letVariable)
Enter fullscreen mode Exit fullscreen mode

Output
Uncaught ReferenceError: letVariable is not defined

Working Now

if(true){
   let letVariable = "This is let Variable";
   console.log(letVariable)
}

Enter fullscreen mode Exit fullscreen mode

Output
This is let Variable

আসুন লুপের ভিতরে একটি ভেরিয়েবল (সহ var) সংজ্ঞায়িত করি এবং দেখুন কী প্রিন্ট হয়...

for(var i = 1; i < 10; i++) { 
   console.log(i); 
} 
console.log(i); // What do we expect here?
Enter fullscreen mode Exit fullscreen mode

Alt Text

এখানে সবকিছু ঠিক আছে মনে হচ্ছে। তবে দ্বিতীয় কনসোল.লগের কী হবে?
Alt Text

দ্বিতীয় console.log বাইরে জন্য লুপ এবং লোকাল ভ্যারিয়েবল
“i” যেহেতু প্রিন্ট হওয়ার কথা ছিল undefined ।

তবে, যদি আমরা let or const, ব্যবহার করি, যেহেতু সেগুলি ব্লক-স্কোপড , এই সমস্যাটি সমাধান হবে।

রেডিক্লারেশন ইসু অফ(redeclaration issue of) var

এর সাথে আর একটি সমস্যা var হ'ল এটি একই পরিবর্তনশীলগুলিকে বারবার পুনরায় ডিক্লেয়ার করার অনুমতি দেয় :

var number = 1; // first declaration 
var number = 2; // same variable redeclared with the same name console.log(number); // And we see no errors
Enter fullscreen mode Exit fullscreen mode

Alt Text

এখন আসুন দেখুন ES6 কীভাবে তাদের সাথে ডিল করে …

var এর পরিবর্তে let

আমি উপরে উল্লিখিত সমস্যাগুলি প্রতিরোধ করতে আসুন এর সাথে আবার চেষ্টা করুন let:

for(let i = 0; i < 10; i++) { // same local variable with let   console.log(i); 
} 
console.log(i); // This time what do we expect?
Enter fullscreen mode Exit fullscreen mode

Alt Text

তাই let ব্লক-স্কোপ ও দ্বিতীয় console.log প্রিন্ট করছে undefined । পারফেক্ট!

এছাড়াও, একটি ভেরিয়েবলের সাথে একটি ভেরিয়েবল পুনরায় ঘোষণার চেষ্টা করে let একটি ত্রুটি প্রদান করে:

Alt Text

সুতরাং let কীওয়ার্ড:

  • let var এর পরিবর্তে ব্যবহার করা হয়(can be used instead of var)
  • এটা block-scoped (is block-scoped)
  • রেডিক্লারেশন অনুমতি দেই না( doesn’t allow redeclaration, but can be reassigned later) ।

const

অন্য নতুন কীওয়ার্ড যা ES6 এনেছে তা হ’ল const ।

let এবং এর মধ্যে পার্থক্য const হল একবার আমরা এর সাথে একটি ভেরিয়েবল ঘোষণা করি const, পরে এটি পরিবর্তন করা যায় না:
Alt Text

if(true){
   const constVariable = "This is const";
   constVariable = "This is const again";
   console.log(constVariable );
}
Enter fullscreen mode Exit fullscreen mode

Output
Uncaught TypeError: Assignment to constant variable

Another Example

if(true){
   const constVariable = {
      name: "Javasript",
      age: "20 years"  
   };
   constVariable.name = "JS";
   console.log(constVariable );
}
Enter fullscreen mode Exit fullscreen mode

Output
{name: "JS", age: "20 years"}

Oldest comments (0)