Показать сообщение отдельно
  #10 (permalink)  
Старый 16.02.2018, 12:54
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от Михаил Хе
arg1 = arg1 || 'что-то опциональное';

Вообще, будет ли заново выделяться память под ту же самую переменную?
память выделится в случае, если arg1 пустое значение и надо создать строку. Вот под строку и выделится (хотя под капотом тут все не так просто, например, эта строка может создаться только один раз и использоваться многократно, поскольку неизменяема).

Если arg1 не пустое, до операции со строкой дело не дойдет, остается arg1 = arg1.
здесь память тоже не выделяется, она уже выделена на стеке, arg1 обычная стековая переменная, просто записываются данные в ячейку памяти.
Ответить с цитированием