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

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

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

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

1) Вар:

Var уже давно используется в Javascript, но в версии ES6 появились let и const. С помощью переменной 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 = 10if (c == 10) {let a = "hi"console.log(a) }console.log(a)

Вывод:

hi
ReferenceError: a is not defined

Пояснение:

мы попытались получить значение «а» внутри блока, где «а» объявлено, поэтому мы получили значение, как и ожидалось. но во второй раз мы не получили ожидаемого значения, а получили ReferenceError. Поскольку «а» объявлено внутри блока, если мы попытаемся получить к нему доступ снаружи, это покажет вам ошибку. Это происходит потому, что любая переменная, объявленная с помощью ключевого слова 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.