Почему я не могу использовать выражение(expresssion) в качестве параметра функции?

Прочитав эту статью, я вроде бы как поняла разницу между инструкцией и выражением.

  1. Инструкция(statement) описывает какой-то набор действий, который необходимо выполнить.
  2. Выражение(expression) - это фрагмент кода любой длины, который в ходе своего выполнения, приводит к вычислению и возврату некоторого одного значения.

Дальше здесь говорится, что...

Выражение может находится везде, где Javascript ожидает какое-то значение. Например, выражение может выступать в качестве параметра функции.

Хорошо. Почему тогда если let a = 5 является выражением, я не могу его использовать в качестве параметра функции? Какие здесь еще есть правила, о которых я не знаю?

console.log(let a = 5); //SyntaxError


Ответы (1 шт):

Автор решения: Grundy

let a = 5 - является LexicalDeclaration

В то время, как аргументы функции представляют из себя список из AssignmentExpression

Таким образом данный кусок кода нельзя использовать в качестве параметра при вызове функции.

→ Ссылка