Кто-нибудь может указать мне на стандарты в ecma-262, которые определяют использование скобок для возвратов?

// Create a component named MessageComponent
var MessageComponent = React.createClass({
  render: function() {
    return (
      <div>{this.props.message}</div>
    );
  }
});

ПРИМЕЧАНИЕ Зачем нам нужны скобки вокруг оператора return (строка 3)? Это из-за автоматической вставки точек с запятой в JavaScript. Без скобок JavaScript будет игнорировать следующие строки и возвращать без значения. Если JSX начинается в той же строке, что и возврат, скобки не нужны.

Взято отсюда.

2 ответа

Не существует определенной части спецификации, которая обрабатывает использование паренов для возвратов. Скобки - это только один из способов создания выражения.

Когда встречается токен продолжения, разрыва, возврата или броска и встречается LineTerminator перед следующим токеном, точка с запятой автоматически вставляется после токена продолжения, разрыва, возврата или броска.

http://www.ecma-international.org/ecma-262/5.1/

Похоже, что круглые скобки - это просто ванильные JS-выражения, заключенные в круглые скобки, т.е. return (1 + 2), кроме многострочных:

function x() {
    return (
        1 + 2
    );
}

* Отредактировано, чтобы не использовать слово закрытия.

Другие вопросы по тегам