Символы продолжения строки в JavaScript
Какова наилучшая практика продолжения строки в JavaScript? Я знаю, что вы можете использовать \
для строк. Но как бы вы разделили следующий код?
var statement = con.createStatement("select * from t where
(t.a1 = 0 and t.a2 >=-1)
order by a3 desc limit 1");
Ответы
Ответ 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.