Подтвердить что ты не робот

Почему положение фигурных скобок в JavaScript имеет значение?

Рассмотрим эти две функции.

function func1() {
   return
   {
      foo: 'bar'
   }
}

function func2() {
   return {
      foo: 'bar'
   }
}

alert(typeof func2()) //return object

alert(typeof func1()) //return undefined

Почему положение брекетов имеет значение, когда на многих других языках это не так? Это языковая функция или ошибка?

4b9b3361

Ответ 1

Из-за автоматической вставки точки с запятой. Первый код такой же, как

function func1() {
   return;
   {
      foo: 'bar'
   }
}

Если вам интересно, почему этот код не создает синтаксическую ошибку, foo: является label.

Относительно

Это языковая функция или ошибка?

Это особенность. Но очень опасный. Лучший способ сохранить его в качестве функции для вас - придерживаться последовательного стиля форматирования (я бы предложил использовать руководство по стилю Google, пока вы не испытаете достаточно сделайте свой собственный).