В чем разница между var, let и const в JavaScript?

Стандарт ECMAScript представил новые функции языка программирования JavaScript, такие как «let» и «const».

var,let и const — это ключевые слова для объявления переменных в JavaScript. Давайте посмотрим один за другим,

var:ключевое слово var используется для объявления переменной в JavaScript, эти объявления обрабатываются перед выполнением кода.

Если переменная объявлена ​​внутри функции или метода, то мы можем сказать, что «область действия переменной находится внутри функции».

Eg:

function testmyvar(){
           var i = 10; // assigning 10 to the var i
           console.log(i);
       }
      console.log(i);// here you cannot access the variable i.
You will see the error :Uncaught ReferenceError: i is not defined

В то же время вы можете использовать глобально объявленную переменную в своей функции и повторно объявить ее.

если вы измените значение глобально объявленной переменной в своей функции, это повлияет на глобально объявленную переменную.

Eg:

var a = 10; // value of a is 10, globally declared 
if(a==10){ 
    var a = 20; // The value of a is changed to 20 
    console.log('Theue of a inside this scope is '+a); 
} 
console.log('Thebal variable value changed to '+a);

В целом мы узнали, что ключевое слово var используется для объявления переменной в JavaScript. Переменная var, объявленная как глобальная, может быть изменена внутри функции.

Повторное объявление одной и той же переменной в той же области допустимо с ключевым словом var.

Eg:1

function redeclaretestwithvar(){ 
       var a =1;   
       var a =2;   
       console.log(a);  //will show you 2 
    }
Eg:2
    var a = 10; // value of a is 10, globally declared 
    var a = 5; 
    if(a==10){ 
      var a = 20; // The value of a is changed to 20 
      console.log('Theue of a inside this scope is '+a); 
    }
    console.log(a)// will show you 5;

Давайте перейдем к ключевому слову let.

Поскольку мы использовали var, let также полезен для объявления переменной в области блока. Глобально назначенное значение не может быть изменено.

Eg:

function testLetFunction(){
  let a =10;
  console.log(a);  // show you 10
  if(a==10){
   let a=20;
   console.log(a); // show you 20
  }
  console.log(a);  // show you 10
}

Как видно из приведенного выше примера, значение, присвоенное переменной a ключевым словом let, находится в области действия блока.
значение изменилось только внутри блока if(). После блока if() значение объявленного в области действия функции остается неизменным.

Повторное объявление одной и той же переменной в той же области недопустимо с ключевым словом let, оно вызовет Uncaught SyntaxError.

function redeclareTestwithLet(){
  let a =5;
  let a =10; //Identifier 'a' has already been declared
  console.log(a); 
}

Const: Const аналогичен let, за исключением того, что const не позволяет изменять его значение.
Например:

const MY_CONST = 10;
function testConstFunctions();
  const MY_CONST = 20;
  console.log("insidetion  "+MY_CONST);  //output 20
}
console.log("Globale"+MY_CONST);// output 10

Как видно из приведенного выше примера, константа объявляет переменную в локальной области блока.
Повторное объявление константы в той же области блока вызовет ошибку.
Например:

const MY_CONST = 10;
const MY_CONST = 20; // error :uncaught SyntaxError: Identifier 'MY_CONST' has already been declared
function testConstFunctions();
  const MY_CONST = 20;
  console.log("insidetion  "+MY_CONST);  //output 20
  const MY_CONST = 25; //uncaught SyntaxError: Identifier 'MY_CONST' has already been declared
}

Константные переменные изменить нельзя, но константные объекты можно изменить

JavaScript позволяет вам изменить константный объект, вы можете изменить свойства объекта, вы можете добавить новое свойство к константному объекту, Но вы не можете переназначить объект.

Eg:

//Declare a const object
   const student = {name:"Madan", Age:"25", class:"computer-Science"};
   console.log(student);
   //modify this object by adding a new property 
   student.gender="Male"; 
   console.log(student); // object will includes gender
   // Modify the value of any property of the same object
   student.name="Madanagouda   console.log(student);// object name is changed

Но

student = {name:"Girish", Age:"25", class:"Electronics"};    // Uncaught TypeError: Assignment to constant variable.

Точно так же массивы const можно изменить, но нельзя переназначить

//Declare a const array
   const planets = ["Mercury", "Venus", "Earth", "Mars","Ceres","Jupiter", "Saturn","Uranus","Neptune","Pluto"];
   console.log(planets);
   
  //add a new value to this const array
   planets.push="Ceres console.log(planets); // array will includes Ceres
   // Modify the existing array value
   planets[10]="Haumea"; 
   console.log(planets);// Array values changed
  
   planets.pop();// removed last element from your const array
   planets = ["Pluto", "Ceres", "Haumea", "Makemake","Eris"];// Uncaught TypeError: Assignment to constant variable.

Спасибо, что прочитали эту статью.
счастливое кодирование.. ;