Учебное определение изменчивости может быть изменено или изменено. В программировании мы используем это слово для обозначения объектов, состояние которых может меняться с течением времени. Неизменяемое значение - это полная противоположность - после того, как оно было создано, оно никогда не может измениться.
Если это кажется странным, позвольте мне напомнить вам, что многие из значений, которые мы используем постоянно, на самом деле неизменны.
var statement = "I am an immutable value";
var otherStr = statement.slice(8, 17);
Думаю, никто не удивится, узнав, что вторая строка никоим образом не меняет строку в выражении. Фактически, никакие строковые методы не изменяют строку, над которой они работают, все они возвращают новые строки. Причина в том, что строки неизменяемы - они не могут измениться, мы можем создавать только новые строки.
Строки - не единственные неизменяемые значения, встроенные в JavaScript. Числа тоже неизменны. Можете ли вы даже представить себе среду, в которой оценка выражения 2 + 3 изменяет значение числа 2? Это звучит абсурдно, но мы постоянно поступаем так с нашими объектами и массивами.