Множество новых функций появилось в JavaScript ES6 (также известном как ECMAScript 2015 или ECMAScript 6), который представляет собой более новую версию JavaScript, представленную в 2015 году.

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

Вопрос в том, чем они отличаются от var, которые используют многие разработчики?

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

ВАР

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

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

function f1()
{
var num =10;
}
console.log(num)

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

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

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

var num = 2 //global scope
function f1()
{
var num =10; //function scope
}
console.log(num)

когда вы запустите приведенный выше код, вы получите num как 2, потому что он будет получать доступ и выводить глобальные переменные var.

Переменные VAR также можно переназначать/обновлять и повторно объявлять

var v1 = 1;
v1 = 30;
console.log(v1);

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

Проблемы с использованием VAR

var greeter = "Good Morning";
var greet = 7;
if (greet > 4) {
var greeter = "Good Afternoon";
}
console.log(greeter) // "Good Afternoon"

Итак, поскольку приветствие › 4 возвращает true, приветствие переопределяется на «Добрый день». Хотя это не проблема, если вы намеренно хотите переопределить greeter, это становится проблемой, когда вы не понимаете, что переменная greeter уже была определена ранее.

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

ПУСТЬ

let теперь предпочтительнее для объявления переменных, так как это улучшение для объявлений var.

Это также решает проблему с переменными var, поскольку переменные let находятся в области блока.

Блок — это кусок кода, ограниченный фигурными скобками. Все, что заключено в фигурные скобки, является блоком.

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

for (let i = 0; i < 3; i++) {
console.log(i);
}
console.log(i);

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

Переменные let также могут быть переназначены/обновлены, но не могут быть повторно объявлены

let v1 = 1;
v1 = 30;
console.log(v1);

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

let v1 = 1;
let v1 = 30;
console.log(v1);

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

Постоянная

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

Объявления const имеют некоторое сходство с объявлениями let.

{
const x = 2;
console.log(x);
}
console.log(x);

когда вы запустите код, вы увидите, что x был определен в доступном блоке, но когда вы попытаетесь получить доступ к x вне этого блока, вы получите сообщение об ошибке.

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

const v1 = 1;
const v1 = 30;
console.log(v1)

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