Всем привет, Сегодня речь пойдет о переменных пусть var и const..

Люди могут путаться между var , let и const , зачем использовать и когда использовать, поэтому блог здесь, чтобы устранить путаницу …

Этот блог поможет вам понять, зачем использовать const и let вместо var и где использовать какие из них, Итак, давайте начнем…

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

1) Вар:

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

Пример:

var b = "Hello"
var b = "Hey" // user can redeclare it using var keyword
 b = "nice"  // you can also reassign value to the variable

Область действия:

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

Пример 1:

var b = "Hello"
        function Checkb(){
            console.log(b)
        }
    Checkb();
    console.log(b);

Объяснение: Итак, выше в примере вы можете видеть, что переменная «b» с ключевым словом var объявлена ​​глобально, и мы пытались получить значение два раза, один раз внутри функции и второй раз глобально (вне функции), поэтому оба способы получения правильного результата. См. вывод

Вывод:

"Hello"
"Hello"

Но если переменная «b» с ключевым словом var объявлена ​​внутри функции, то она доступна только внутри функции и недоступна вне функции и выдает ошибку ссылки.

Пример 2:

function f() {
 
        var b = "Hello";     // It can be accessible anywhere
        console.log(b)        // within this function
    }
    f();
 
    console.log(b);      // B cannot be accessible
                        //because outside of function

Вывод:

Объяснение. Итак, во втором примере переменная «b» объявлена ​​внутри функции, поэтому мы попытались получить ее сначала внутри, а затем снаружи функции. В первом мы получили ожидаемый результат, но во втором мы получили ReferenceError, потому что переменная с ключевым словом var недоступна вне функции. Итак, мы узнали, что с глобальной областью действия ключевое слово var также имеет область действия функции.

2) Пусть:

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

Пример:

let b = 1
let b = 2     //error~ user cannot redeclare the variable again
 b = "0"      // you can reassign value to the variable

Пояснение:

Переменная «b» уже объявлена ​​с ключевым словом let, поэтому вы не можете объявить ее повторно. Если вы это сделаете, вы получите SyntaxError (b уже определено). но вы можете переназначить значение переменной, как я сделал выше.

Область:

let имеет блочную область действия. Все, что находится внутри {}, считается блоком. Область действия блока означает, что если переменная «b» объявлена ​​внутри блока, то она недоступна вне блока.

Пример:

let c = 10
if (c == 10) {
let a = "hi"
console.log(a) 
}
console.log(a)

Вывод:

hi
ReferenceError: a is not defined

Пояснение:

мы попытались получить значение «а» внутри блока, где «а» объявлено, поэтому мы получили значение, как и ожидалось. но во второй раз мы не получили ожидаемого значения, а получили ReferenceError. Поскольку «a» объявлен внутри блока, если мы попытаемся получить к нему доступ снаружи, это покажет вам ошибку. Это происходит потому, что любая переменная, объявленная с помощью ключевого слова let, становится областью действия блока.

3) Константа:

Ключевое слово Const также представлено с let в ES6. Const говорит само за себя. const переменные поддерживают постоянные значения. Хотя природа const сильно отличается от let, они оба имеют много общего, например, у них обоих есть блочная область. Ключевое слово const имеет все те же свойства, что и ключевое слово let, кроме одного, которое пользователь не может изменить. См. пример ниже

//let
let a = "john"
a = "micheal"       //value can be updated
//const
const b = "red"
b = "blue"       // give you error because can't be updated

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

Пример:

const b = "red"
const b = "green"   // not allowed to redeclare 
b = "yellow"     // not allowed to reassign the value

Область:

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

Пример:

{
 const x = 9
 console.log(x)
 }
 
 console.log(x)

Вывод:

9
ReferenceError: x is not defined

Наиболее предпочтительно:

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

Заключение :

Прежде чем закончить, давайте подытожим то, что мы только что поняли:

var: в пределах функции, может быть обновлено и повторно объявлено.

let : блочная область действия, может быть обновлена, но не может быть повторно объявлена.

const: блочная область, не может быть обновлена ​​и повторно объявлена.

Я почти разобрался со всеми основными вещами, но если вы хотите более подробно изучить область видимости, вы можете проверить этот freeCodeCamp.