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

Идея неизменяемости может показаться на первый взгляд немного неудобной, но в этой статье я покажу вам, почему неизменность важна и как вы можете обновлять свои данные неизменным способом.

Неизменяемое значение - это значение, которое после создания не может быть изменено.

Примитивные типы в JavaScript неизменяемы, например строки, функция, доступная для выполнения любых изменений в строках, возвращает или приводит к новой строке. Это неверно для ссылочных типов, таких как объекты и массивы. Прототип массива содержит такие функции, как pop() push() slice()etc, которые изменяют исходный массив.

Возникает вопрос, почему неизменность данных важна? Одно из самых больших преимуществ парадигмы - это предсказуемость. Библиотеки, подобные Redux, сделали эту концепцию более популярной.

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

Еще одно ключевое слово - уверенность. Если я объявил указатель с ключевым словом const, например const PI = 3.14, даже если я поделился этим фрагментом кода с кем-то еще, я больше доверяю базе кода, PI не будет быть переназначенным.

Теперь давайте посмотрим, как мы можем работать с данными неизменным образом.

  1. Неизменяемая работа с объектами

2. Неизменяемая работа с массивами.

Последние мысли

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