Можно ли добавить свойство строке?
JavaScript testПопробуйте запустить код:
let str = "Привет"; str.test = 5; // (*) alert(str.test);
В зависимости от того, используете ли вы строгий режим (use strict) или нет, результат может быть:
undefined(без strict)- Ошибка (strict mode)
Почему? Давайте посмотрим что происходит в строке кода, отмеченной (*):
- В момент обращения к свойству
strсоздаётся «объект-обёртка». - В строгом режиме, попытка изменения этого объекта выдаёт ошибку.
- Без строгого режима, операция продолжается, объект получает свойство
test, но после этого он удаляется, так что на последней линииstrбольше не имеет свойстваtest.
Данный пример наглядно показывает, что примитивы не являются объектами.
Они не могут хранить дополнительные данные.