Понимание неявных точек с запятой на ECMAScript и синтаксического анализа пробелов

#javascript #coding-style #whitespace #ecmascript-5

#javascript #стиль кодирования #пробелы #ecmascript-5

Вопрос:

Я видел, на самом деле, очень часто, это цитировалось как причина использования стиля K amp; R при написании ECMAScript.

 function foo () {
  return
    {
      foo: 1
    }
  ;
}
  

Это не работает в ECMAScript или Javascript: добавление неявной точки с запятой приводит к возврату функции undefined . Однако я тоже вижу это все время

 function bar () {
  var a = "BAR";
  return a
    .toLowerCase()
  ;
}
  

И мне интересно, почему неявные точки с запятой не приводят к такому возврату "BAR" , почему bar они возвращаются туда?

Комментарии:

1. Я понимаю, что в основном это то, о чем ваш вопрос, но использование пробелов здесь отвратительно.

Ответ №1:

Потому что синтаксис не работает с неявной точкой с запятой в конце строки.

Если вы добавите точку с запятой:

 function bar () {
  var a = "BAR";
  return a;
    .toLowerCase()
  ;
}
  

в следующей строке вы получите синтаксическую ошибку.