Если вы все еще используете var для объявления переменных в своих проектах JavaScript и слышали о const и let, но не знаете, с чего начать, вы попали по адресу. Может быть, вы прочитали статью или две, может быть, вы понимаете разницу на бумаге, но еще не переключились. Я собираюсь поделиться несколькими вещами, которые помогли мне, и, надеюсь, это поможет и вам (и я постараюсь сделать это быстро).

Зачем переключаться?

Если вы работаете с JavaScript изо дня в день, важно не отставать и понимать новые функции языка. В то время как var по-прежнему вполне приемлем, const и let добавляют больше точности вашему коду. Точно так же const и let за последние несколько лет перешли от «экспериментальных» к «новым» и «стандартным», а это означает, что день, когда var будет считаться «устаревшим», не за горами. Лучше быть немного впереди.

(Очень) краткий обзор

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

let foo = 4;
foo = 10;
console.log(foo) // 10

const bar = 4;
bar = 10; // Uncaught TypeError: Assignment to constant variable.

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

Следует отметить одну вещь: если вы назначаете массив или объект с помощью const, вы все равно можете изменять элементы или свойства массива/объекта, но вы не можете переназначить переменную на совершенно другое значение. Вот пример:

const arr = [1, 2, 3, 4];
arr[0] = 5;
console.log(arr); // [5, 2, 3, 4]
arr.push(6);
console.log(arr); // [5, 2, 3, 4, 6]

const obj = {
  foo: 1,
  bar: 2
};
obj.foo = 3;
console.log(obj); // { foo: 3, bar: 2}
obj = {
  baz: 3,
  foobar: 4
}; // Uncaught TypeError: Assignment to constant variable.
arr = ["cat", "dog", "fish"]; // Uncaught TypeError: Assignment to constant variable.

Не бойтесь константы

Как только вы узнаете об этом, я думаю, что первое искушение — придерживаться let, так как это более снисходительно, и избегать const. Тем не менее, я думаю, что лучший вариант — сначала достичь const и использовать let только в тех случаях, когда переменная должна быть переназначена, например, переменная initialized, которая может быть переназначена с false на true после того, как произошло какое-то действие. .

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

Заключение

Это был (очень) краткий обзор const и let, и я упустил много нюансов, чтобы попытаться дать практический подход для тех, кто хочет быстро переключиться и позже погрузиться в теорию. Главный вывод — подумать о назначении каждой переменной, которую вы объявляете, и опробовать const-первый метод объявления переменных, чтобы ваш код был точным и читабельным.

Если вы хотите глубже погрузиться в нюансы каждого из них, рекомендую эту статью от freecodecamp.