Является ли это допустимым примером того, как фрагмент кода меняется с оператора на выражение из-за изменения синтаксиса кода? - PullRequest
2 голосов
/ 01 августа 2020
function f() {return 5;}; 
var x = f();

Само по себе выполнение оператора функции (f()) является оператором выражения . Однако в приведенном выше фрагменте кода (var x = f();) часть кода f() больше не является выражением - и, следовательно, просто выражением - потому что операторы не могут появляться там, где ожидаются выражения?

1 Ответ

2 голосов
/ 04 августа 2020

Выражение - это любой оператор (или его часть), возвращающий некоторый результат. Каждый раз, когда мы вызываем функцию, это выражение, потому что оно возвращает значение. Даже если тело функции не включает никаких операторов возврата, по умолчанию оно возвращает undefined.

Оператор var x = f(); не является выражением, потому что он не возвращает значения. Однако левая часть f() по-прежнему является выражением, потому что она возвращает некоторое значение. x = f() также является выражением, потому что оно также возвращает некоторый результат. Мы также можем проверить, что x = f() является выражением, поместив это в условие if. Однако эта часть var не является выражением, и ее установка в условие if вызовет ошибку.

Надеюсь, это устранит вашу путаницу. Чтобы ответить на этот вопрос, мне немного помогли здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...