Вопрос проверяет понимание различий между примитивными типами данных и объектами в JavaScript, а также механизма автоупаковки примитивов.
В JavaScript строки относятся к примитивным типам данных. Примитивы — это неизменяемые (immutable) значения, которые не имеют собственных методов или свойств. Когда вы пытаетесь обратиться к свойству строки или присвоить его, JavaScript создаёт временную объектную обёртку (например, String), выполняет операцию, а затем уничтожает эту обёртку. Поэтому присвоенное свойство не сохраняется.
let str = 'hello';
str.foo = 'bar';
console.log(str.foo); // undefined
// В строгом режиме будет ошибка
'use strict';
let str2 = 'world';
str2.bar = 'baz'; // TypeError: Cannot create property on primitive valuestr.length), но это не сохраняет изменения.Строки не предназначены для хранения дополнительных данных — для этого используйте объекты, Map или другие структуры данных. Понимание этого различия помогает избежать ошибок при работе с примитивами и объектами в JavaScript.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию