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