Выражение - это любой оператор (или его часть), возвращающий некоторый результат. Каждый раз, когда мы вызываем функцию, это выражение, потому что оно возвращает значение. Даже если тело функции не включает никаких операторов возврата, по умолчанию оно возвращает undefined
.
Оператор var x = f();
не является выражением, потому что он не возвращает значения. Однако левая часть f()
по-прежнему является выражением, потому что она возвращает некоторое значение. x = f()
также является выражением, потому что оно также возвращает некоторый результат. Мы также можем проверить, что x = f()
является выражением, поместив это в условие if
. Однако эта часть var
не является выражением, и ее установка в условие if
вызовет ошибку.
Надеюсь, это устранит вашу путаницу. Чтобы ответить на этот вопрос, мне немного помогли здесь