Давайте узнаем способ объявления переменных JavaScript.

Я начал изучать JavaScript 3 месяца назад. У меня как новичка много вопросов. Один из них: почему я должен использовать Let или Const вместо var. Я смотрю много руководств по этому поводу. Когда я смотрел все эти учебники, я решил использовать Var. Поскольку первый метод, который я узнал об объявлении переменной, - это var. И им легко пользоваться. Но позже, когда я начинаю работать над проектом, я сталкиваюсь с множеством ошибок и проблем. позвольте мне объяснить, какой из них мы должны использовать.

Вар

До Ес6 var декларации правили. Есть проблемы с var. Вот почему возникла необходимость в новых способах объявления переменных. Давайте разберемся var больше, прежде чем обсуждать эти вопросы.

Сфера применения var

В ПОРЯДКЕ! Что такое размах? Что это значит? область действия означает, где эти переменные доступны для использования. var объявления имеют глобальную область видимости или функцию / локальную область действия. Когда переменная var объявляется вне функции, это называется глобальной областью видимости. Это означает, что любая переменная, объявленная с var вне функционального блока, доступна для использования во всем окне.

var - это область действия, когда переменная объявлена ​​внутри функции. Это означает, что переменная доступна и к ней можно получить доступ только внутри этой функции.

Пример :

// This is global scope
    var doSomething = "Done";
// This is function scope
    
   function sayHi (){ 
    var name = "Shakib"
}

doSomething - глобальная переменная области видимости. Мы можем получить доступ к этой переменной где угодно. Но sayHi - это область действия функции. мы не можем получить к нему доступ вне функции. если мы сделаем это:

// This is global scope
var doSomething = "Done";
// This is function scope
    
   function sayHi (){ 
    var name = "Shakib";
}
  console.log(name); // error: name is not defined

мы получим ошибку. Потому что name недоступен вне функции sayHi.

Повторно объявить и обновить переменную var

мы можем повторно объявить и обновить в той же области и не получим ошибки.

var doSomething = "Done";
doSomething = "Not Done";

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

console.log(name);
var name = "Shakib";

когда мы выполняем этот код. JavaScript перемещает переменную вверх перед выполнением. Нравится

var name;
console.log(name);
name = "Shakib";

Проблемы с var

Для новичка var - очень полезная функция. Но, возможно, нам придется объявить одноименные переменные при работе над проектом. И это вызовет у нас некоторую ошибку. Посмотрим код.

var doSomething = "Not Done";
money = 5;
if (money > 2){ 
 var doSomething = "Done";
}
console.log(doSomething);

Итак, money > 2 return true, doSomething переопределено на Done. Это не проблема, если вы сознательно хотите, чтобы doSomething было переопределено. Но это становится проблемой, когда вы не знаете, что переменная doSomething уже была определена ранее. много ошибок в вашем коде. Вот почему необходимы let и const.

Позволять

let - один из методов объявления переменной в Es6. И это решает проблемы с var переменной, которые мы только что рассмотрели.

пусть это блочная область видимости

что такое блочная область видимости? Все, что находится внутри фигурных скобок {}, является блоком.

переменная, объявленная в блоке с let, доступна только для использования внутри этого блока. Позвольте мне объяснить это на примере

let money = 5;
if (money > 2){ 
 var doSomething = "Done";
}
console.log(doSomething); // doSomething is not defined.

когда мы console.log doSomething мы получим ошибку. Потому что мы использовали doSomething вне его области.

пусть может быть обновлено

В отличие от переменной var, мы не можем повторно объявить переменную let. Но пусть может обновляться.

let point = 1;
point = 5; //we updated the let vaiable.

это вернет ошибку:

let point = 1;
let point = 5;

Однако, если одна и та же переменная определена в разных областях, ошибки не возникнет:

let doSomething = "Not Done";
money = 5;
if (money > 2){ 
 let doSomething = "Done";
 console.log(doSomething); // return Done.
}
console.log(doSomething); // return Not Done.

Так же, как var, let объявления поднимаются наверх. В отличие от var, который инициализируется как undefined, ключевое слово let не инициализируется. Поэтому, если вы попытаетесь использовать переменную let перед объявлением, вы получите Reference Error.

Const

Другой метод объявления переменной в Es6 - const. Переменные, объявленные с const, поддерживают постоянные значения. const имеют некоторое сходство с let декларациями.

const имеет блочную область видимости

Как и let объявления, const объявления доступны только в том блоке, в котором они были объявлены.

const не может быть обновлен или повторно объявлен

Мы не можем обновить или повторно объявить константную переменную. Это означает, что переменная, объявленная с const, остается неизменной в пределах своей области. Если мы объявим переменную с const, мы не сможем этого сделать:

const UserName = "Elon Musk"
UserName = "Bill Gates" 
//error message : invalid assignment to const 'userName'.

ни это:

const UserName = "Elon Musk"
const UserName = "Bill Gates"
//error message : 'UserName' has already been declared.

Когда дело доходит до объектов, объявленных с помощью const, все обстоит иначе. Мы не можем обновить const объект, но мы можем обновить свойства объекта. Если мы объявим объект const:

const userInfo = { 
 name : "Elon Musk",
 number : 00000000
}

мы не можем этого сделать:

const userInfo = { 
 name : "Bill Gates",
 number : 1111111
}
//// error message:  Assignment to constant variable.

мы можем сделать это :

userInfo.name = "Jeff Bezos";

мы просто обновляем значение userInfo.name. Без ошибок.

Как и let, объявления const поднимаются наверх, но не инициализируются.

Итак, мы узнали, что такое var let и const. Я в основном использую const. Если есть вероятность, что переменная может быть обновлена ​​в будущем, я использую let. Вам также следует использовать let и const, а не var.

Спасибо, что прочитали это.