Вопрос по задаче
Здравствуйте! Возник вопрос по задаче в данной главе: https://learn.javascript.ru/primitives-methods
Сама задача:
let str = "Привет"; str.test = 5; alert(str.test);
"Как вы думаете, это сработает? Что выведется на экран?"
Запустив код в консолях Chrome и Mozilla в строгом режиме, я увидел следующее: => TypeError: Cannot create property 'test' on string 'Привет'
В самой главе написано: "Получается, что примитивы могут предоставлять методы, и в то же время оставаться «лёгкими».
Движок JavaScript сильно оптимизирует этот процесс. Он даже может пропустить создание специального объекта. Однако, он всё же должен придерживаться спецификаций и работать так, как будто он его создаёт."
Я это понял так: оптимизация позволяет не создавать объект при вызове на строке str.test = 5; , в нестрогом режиме это работает, а строгий ругается.
Но в главе написано:
"В момент обращения к свойству str создаётся «объект-обёртка».
В строгом режиме, попытка изменения этого объекта выдаёт ошибку."
Проясните пожалуйста этот момент.