jshint выдает «пропущенную точку с запятой» или нет в зависимости от того, является ли функция недействительной? - PullRequest
0 голосов
/ 03 февраля 2019

Я использую jshint в VSCode.jshint выдает предупреждение «отсутствует точка с запятой» в конце «}» функции ниже

void function doSomething(){
    console.log('Hello, World');
}

enter image description here

И добавление точки с запятой удовлетворяет jshint:

enter image description here

Но после удаления void предупреждение исчезает без точки с запятой:

void function doSomething(){
    console.log('Hello, World');
}

enter image description here

Какая логика стоит за этим?В более общем смысле, есть ли официальное руководство по стилю, такое как PEP8 в Python для Javascript, посвященное лучшей практике для точки с запятой?

1 Ответ

0 голосов
/ 03 февраля 2019

Имеются следующие правила правил:

  • За объявлениями функций не обязательно следует ставить точку с запятой.
  • Выражения, включая выражения, содержащие выражение функции, делают.

Помещая оператор void перед ключевым словом function, вы вводите его в контекст выражения.

Поскольку он находится в контексте выражения, вы ничего не делаете с функциейв выражении, и вы аннулируете результат, он становится бессмысленным.Выражение ничего не делает вообще.Он даже не создает переменную с функцией, хранящейся в ней, поэтому это ошибки:

void function x() { console.log(1) };
x();

В целом, каково правило наилучшей практики для точек с запятой в javascript?

A весьма самоуверенный субъект,

...