Если вы все еще используете 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.