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

Символы продолжения строки в JavaScript

Какова наилучшая практика продолжения строки в JavaScript? Я знаю, что вы можете использовать \ для строк. Но как бы вы разделили следующий код?

var statement = con.createStatement("select * from t where
(t.a1 = 0 and t.a2 >=-1)
order by a3 desc limit 1");
4b9b3361

Ответ 1

Если я это понял,

var statement = con.createStatement('select * from t where '
                                  + '(t.a1 = 0 and t.a2 >=-1) '
                                  + 'order by a3 desc limit 1');

Для удобства чтения удобно выравнивать оператор + в каждой строке: В любом случае если вы используете Ecmascript 2015, избегайте разбиения многострочной строки на \, потому что:

  • Это не стандартный JavaScript
  • Пробел после этого символа может генерировать ошибку синтаксического анализа

Ответ 2

Мне нравится использовать обратную косую черту для продолжения строки JavaScript, например:

    // validation
    $(".adjustment, .info input, .includesAndTiming input, \
        .independentAdj, .generalAdj, .executiveAdj \
        #officeExpense, #longDistanceExpense, #digitalImages, #milesReimbursment, #driveTime, #statementTranscription").keypress(function (event) {

Ответ 3

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

var statement = con.createStatement
   (
   'select * from t where ' +
   '(t.a1 = 0 and t.a2 >=-1) ' +
   'order by a3 desc limit 1'
   );

Он близок к синтаксису формата SQL, который я использовал почти 20 лет:

SELECT *
FROM t
WHERE 
   t.a1 = 0 AND
   t.a2 >=-1
ORDER BY a3 DESC
LIMIT 1

Сохранение продолжения (+ в JavaScript или AND в SQL) в крайнем правом разрешении глаз равномерно скользить по левому краю, проверяя lvalues ​​и синтаксис. Это немного сложнее сделать с продолжением слева - не важно, если вы не делаете много этого, и в этот момент каждая калория, которую вы тратите, - это калория, которая могла бы быть сохранена путем небольшого улучшения в формате.

Поскольку этот запрос настолько прост, разбиение всего на формат SQL приводит к расточительству пространства и пропускной способности, поэтому предложенный JavaScript находится на шести строках вместо десяти. Свертывание коленей вверх по одной строке приводит к четырем строкам, сохраняя пробелы. Не совсем понятно или просто для редактирования.

Ответ 4

"+" предназначен для конкатенации строк, и большинство примеров имеют дело со строками. Что делать, если у вас есть команда, необходимая для строки в нескольких строках, например, составной оператор "if"? Вам нужна обратная косая черта в конце каждой строки, которая должна быть продолжена. Это ускользает от невидимого символа следующей строки, чтобы он не ограничивал команду в инструкции mid.