Все приложения, которые мы использовали, представляют нам данные в удобном для использования виде, и эти данные со временем меняются.
Идея неизменяемости может показаться на первый взгляд немного неудобной, но в этой статье я покажу вам, почему неизменность важна и как вы можете обновлять свои данные неизменным способом.
Неизменяемое значение - это значение, которое после создания не может быть изменено.
Примитивные типы в JavaScript неизменяемы, например строки, функция, доступная для выполнения любых изменений в строках, возвращает или приводит к новой строке. Это неверно для ссылочных типов, таких как объекты и массивы. Прототип массива содержит такие функции, как pop()
push()
slice()
etc, которые изменяют исходный массив.
Возникает вопрос, почему неизменность данных важна? Одно из самых больших преимуществ парадигмы - это предсказуемость. Библиотеки, подобные Redux
, сделали эту концепцию более популярной.
Мутация не делает видимых изменений в коде, что может вызвать неожиданный побочный эффект и привести к серьезным неприятным ошибкам. Неизменяемость может упростить архитектуру вашего приложения, упростить тестирование и поддержку, поскольку состояние и мутации не разбросаны по разным частям вашего приложения.
Еще одно ключевое слово - уверенность. Если я объявил указатель с ключевым словом const
, например const PI = 3.14
, даже если я поделился этим фрагментом кода с кем-то еще, я больше доверяю базе кода, PI
не будет быть переназначенным.
Теперь давайте посмотрим, как мы можем работать с данными неизменным образом.
- Неизменяемая работа с объектами
2. Неизменяемая работа с массивами.
Последние мысли
неизменяемость упрощает чтение, тестирование и сопровождение нашего кода, что позволяет избежать неприятных ошибок.