Правильный способ объявления переменных в JavaScript

Итак, вы можете быть новичком, который только начал изменять мир с помощью JavaScript, или, может быть, кем-то, кто уже делает это некоторое время, но только что наткнулся на ту же старую недоумение, через которую проходит каждый разработчик JavaScript, если это будет var, пусть, или const?

Не волнуйтесь, вы уже в нужном месте. В этой статье рассказывается все о var, let и const. В чем разница между ними и какой из них следует учитывать при создании проекта.

Итак, до появления ES6 var был королем объявления переменных в JavaScript. ES6 - это просто причудливое название обновления JavaScript, вышедшего в 2015 году, после чего в пул были добавлены let и const.

Но что не так с var?

Есть ли что-нибудь сломанное с помощью var? НЕТ, var успешно работает на протяжении десятилетий.
Единственная проблема с var заключается в том, что у него есть свои особенности, и его легко случайно неправильно использовать, создавая излишне странные ситуации.

Итак, давайте обсудим, что именно это и что разницы с Let и const.

Сфера

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

function scope(){
    var name = "javascript tutorials"
    console.log(name)  
}
console.log(name)       //Error: name not defined

Доступ к переменной вне функции вызывает ошибку «имя не определено».

Это потому, что эта переменная существует только внутри функции (между фигурными скобками, называемыми блоком), где она объявлена, а внешний мир практически не знает, существует ли она вообще.

То же самое верно для let и const, но, в отличие от var, они также имеют область видимости на уровне блока, например if block или для блока цикла.

if(true){
    var name = "javascript tutorials"
}
console.log(name)                             //javascript tutorials
if(true){
    let name = "javascript tutorials"
}
console.log(name)                        //Error: name not defined
if(true){
    const name = "javascript tutorials"
}
console.log(name)                        //Error: name not defined

Чем полезен этот обзор?

Предположим, что при написании кода где-то посередине внутри блока if вы снова повторно объявляете переменную, совершенно случайно меняя ее значение. Теперь, когда вы используете var, она меняет значение повсюду и может создавать некоторые серьезные осложнения.

var result = 0
....
if(true){
    var result = 1  //accidentally re-declared
}
console.log(result)   //result changed to 1

Но если вместо этого вы используете let или const, эта переменная ограничена только своей областью действия, то есть этим оператором if, и изменения не отражаются извне.

let result = 0
....
if(true){
    let result = 1  //accidentally re-declared
}
console.log(result)   //result remains 0

Декларация и переназначение

Второе и важное отличие состоит в том, как они объявляются и переназначаются…

Let не позволяет снова объявить переменную с тем же именем (в той же области)

что спасает нас от такой серьезной ситуации ..

var myNumber = 45
...
var myNumber = 100  //accidently redeclared
...
console.log(result)   //result changes to 100 (expected 45)

При использовании let / const он ведет себя следующим образом.

let myNumber = 45
...
let myNumber = 100  //Error:'myNumber' has already // been declared
...
console.log(result)   //45

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

Но, если я действительно хочу это изменить, я могу просто переназначить.

let myNumber = 45
...
myNumber = 100  //variable reassiged
...
console.log(result)   //100

А что с константой?

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

const myNumber = 45
...
myNumber = 100  //Error: Assignment to constant variable
...
console.log(result)

Это потому, что иногда, на самом деле, много раз. Это происходит, когда мы не хотим изменять значение переменной, мы просто хотим присвоить ее один раз и продолжать использовать ее снова и снова.

Теперь, какой из них следует использовать и где?

Поэтому, выбирая между тремя из них, я рекомендую использовать const, насколько это возможно, поскольку это убережет вас от случайного изменения ваших значений.
Но если вы уверены, что значение будет изменяться во время выполнения, тогда объявите их с let, поскольку это избавляет от всех неудач, связанных с случайным повторным объявлением с другим значением,
И я рекомендую не использовать var вообще, чтобы спастись от всех тех невзгод, о которых мы говорили .

Спасибо за чтение и приятного изучения…

Чтобы углубиться в детали var let и const

Смотреть видео

Https://www.youtube.com/watch?v=_Dp8PGManNM