В случае, если присутствуют любые значения по умолчанию , для параметров создается отдельная запись среды.
Семантика функций, объявленных в этой позиции, такова, что эта запись среды определяет их локальная сфера Примечание в спецификации c (см. Раздел 28) гласит:
ПРИМЕЧАНИЕ. Для обеспечения того, чтобы замыкания, создаваемые выражениями в формальном списке параметров, были закрыты, необходима отдельная запись среды. не имеют видимости объявлений в теле функции.
Больше от спецификация c:
Когда контекст выполнения установлен для При оценке функции ECMAScript создается новая функция Запись среды, и в этой записи среды создаются привязки для каждого формального параметра. Каждое объявление в теле функции также создается. Если формальные параметры функции не содержат инициализаторов значений по умолчанию, то объявления тела создаются в той же самой записи среды, что и параметры. Если инициализаторы параметров значения по умолчанию существуют, для объявлений тела создается вторая запись среды. Формальные параметры и функции инициализируются как часть FunctionDeclarationInstantiation. Все остальные привязки инициализируются во время вычисления тела функции.
Поэтому при отсутствии аргументов по умолчанию я делаю вывод, что для параметра используется одна из существующих ранее лексических сред (VariableEnvironment или LexicalEnvironment) привязок. Может быть.