раз, когда исполнение доходит до function(){} или ()=>{} – у вас _создаётся_ новый экземпляр функции. Нет, не «компилируется» (syntax error вылетают раньше, когда считывается сам файл).
Когда выполнение доходит до {a:b} – _создаётся_ объект.
Когда доходит до /…/ – _создаётся_ регулярка (опять же, не «компилируется», если там не new RegExp("str")), но всё же – это Object, и у него есть локальные свойства.
Можете стараться этого избегать, или можете на это наплевать.
Но надо понимать, как устроено выполнение JS.
Вот так понятно, спасибо
Обсуждают сегодня