javascript требует ';'в конце строки кода? - PullRequest
5 голосов
/ 04 августа 2011

Я видел и использовал код JavaScript, который имеет и пропускает ';'с конца заявления.Требуются ли они в некоторых случаях, а не в других?Если да, то можете ли вы привести несколько примеров, а если нет, то каков общий стандарт, использовать «;»или нет ... это .. вопрос ??

Ответы [ 3 ]

12 голосов
/ 04 августа 2011

JavaScript использует (обычно не нравящийся) метод, который называется «Точка с запятой», где он позволяет опустить точки с запятой.

Правила, в которых вы можете и не можете вставлять точки с запятой, обширны и достаточно хорошо описаны здесь .

Как правило, не используйте точку с запятой.Это плохо продуманная функция, которая причинит вам боль, прежде чем она вам поможет.

Мало того, что вы всегда должны использовать точки с запятой, но вы также должны иметь привычку ставить скобки { в одну строку,так как вставка точки с запятой может фактически неверно истолковать то, что вы имели в виду.

Например, допустим, я пытаюсь вернуть объект javascript из функции:

function f() {
    return { "a":"b", "c":"d" }    // works fine
}

function g() {
    return                         // wrong!!!
    {
        "a":"b",
        "c":"d"
    }
}

Если я поставлю { нав новой строке (как я это делал в g), после оператора return после нее ставится точка с запятой, что разрушает смысл того, что вы говорили.

В целом, вставка точки с запятой - плохая функция, и выникогда не следует полагаться на это.

1 голос
/ 04 августа 2011

Всегда используйте точку с запятой, это облегчает чтение кода.Сейчас я не знаю ни одной ситуации, в которой это можно было бы опустить.

1 голос
/ 04 августа 2011

Используйте ; , чтобы отметить конец оператора. Javascript следует синтаксической теме, заданной на языках семейства C, а ; - это разделитель конца оператора.

Какой код вы видели, который опускает это?

Если после строки в блоке больше нет кода, то ; технически необязателен. Вы должны включить это в любом случае.

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