Строки изменяются в js

Строки в js неизменяемы. Только вот почему у меня она изменяется в функции?

const ucFirst = (str) => {
   str = 'Лена'
   return str
}


console.log(ucFirst('Вася'));


Ответы (1 шт):

Автор решения: vsemozhebuty

Вы не изменили строку, вы просто присвоили переменной другое значение, присвоили новую строку вместо прежней.

Возможные примеры неизменяемости строк:

const str = 'Лена';
str[0] = 'Г';
console.log(str); // Всё ещё 'Лена', а не 'Гена'.
str.length = 2;
console.log(str); // Всё ещё 'Лена', а не 'Ле'.
const newStr = str.toUpperCase();
console.log(str); // Всё ещё 'Лена', а не 'ЛЕНА'.
console.log(newStr); // 'ЛЕНА', но это другая строка в другой переменной.

В строгом режиме ('use strict';) эти попытки вызывают исключения (ошибки).

→ Ссылка