Object.freeze() и const - это два разных способа защиты данных в JavaScript, но они имеют существенные различия.

const - это ключевое слово в JavaScript, используемое для объявления переменных с неизменяемым значением. Однако, это не означает, что значение переменной не может быть изменено, если это изменяемый тип данных, такой как массив или объект. Ключевое слово const защищает только саму переменную от переназначения в другое значение.

Пример использования const:

const arr = [1, 2, 3]
arr.push(4) // допустимо
arr = [4, 5, 6] // не допустимо

Object.freeze() - это метод объекта в JavaScript, который используется для замораживания объекта, сделав его свойства неизменяемыми. Замороженный объект не может быть изменен, его свойства не могут быть добавлены, удалены или изменены.

Пример использования Object.freeze():

const obj = { a: 1, b: 2, c: 3 }
Object.freeze(obj)
obj.a = 4 // не допустимо
obj.d = 4 // не допустимо

В этом примере, мы объявляем объект obj и затем замораживаем его с помощью метода Object.freeze(). Попытки изменения значения свойства a или добавления нового свойства d будут неуспешными.

Таким образом, ключевое слово const защищает только переменную от переназначения, в то время как Object.freeze() защищает объект от изменений свойств. Они могут быть использованы вместе для создания полностью неизменяемых данных в JavaScript.


Назад