С появлением node.js многострочные строки становятся все более необходимыми в JavaScript.
- Есть ли особый способ сделать это в Node.JS, даже если он не работает в браузерах?
- Есть ли какие-то планы или, по крайней мере, запрос функции, который я могу поддержать?
Я уже знаю, что ты можешь использовать \n\
в конце каждой строки, это не то, что я хочу.
print( '<div>')
для печати свой HTML. У него нет ни вкладок, ни возврата, что «изящно», но было бы проще использовать<<EOF..EOF
строку в стиле Perl или файл JSP в стиле Java. В любом случае мне нужно иметь возможность вводить переменные в многострочную строку, когда она появляется. Я пока обойдусь без него.\n
нереализацию, так что ... это хорошо только браузеры.Ответы:
узел v4 и текущие версии узла
Начиная с ES6 (и, соответственно, версий Node выше v4), в Javascript был добавлен новый внутренний тип "литерал шаблона" (обозначенный обратными галочками "" "), который также можно использовать для создания многострочных строк, как в :
который имеет значение:
'this is a\nsingle string'
.Обратите внимание , что перевод строки в конце первой строки будет включен в результирующую строку.
Были добавлены шаблонные литералы, позволяющие программистам создавать строки, в которых значения или код могут быть напрямую введены в строковый литерал без необходимости использования
util.format
других шаблонов, как в:который напечатает «результат 10 плюс 10 будет 20.» к консоли.
Старые версии узла
Более старая версия узла может использовать символ "продолжения строки", позволяющий писать многострочные строки, такие как:
который имеет значение:
'this is a single string'
.Обратите внимание, что новая строка в конце первой строки не включается в результирующую строку.
источник
Многострочные строки являются текущей частью JavaScript (начиная с ES6) и поддерживаются в node.js v4.0.0 и новее.
источник
Что именно вы ищете, когда имеете в виду многострочные строки?
Вы ищете что-то вроде:
Что будет напечатано как «Some String Here»?
Если это так, имейте в виду, что приведенное выше является допустимым Javascript, но это не так:
Какая разница? Пробел после
\
. Удачи отладки.источник
Взгляните на модуль mstring для node.js.
примечание: модуль (по состоянию на 13/12/11) не допускает пробелов перед закрытием
***/
, поэтому вам придется взломать его самостоятельно.источник
Помимо того, что публикуют здесь, я слышал, что конкатенация может быть намного быстрее, чем присоединение в современных javascript vms. Смысл:
Будет медленнее, чем:
В определенных случаях. http://jsperf.com/string-concat-versus-array-join/3
Кроме того, я считаю это одной из самых привлекательных функций в Coffeescript . Да, да, я знаю, ненавистники возненавидят.
Это особенно удобно для HTML-фрагментов. Я не говорю, что это причина использовать его, но я действительно хочу, чтобы он приземлился в стране экма :-(.
мистифицировать
источник
.coffee
в.js
, номера строк перемешиваются. Я не пробовал CoffeeScript, но когда я попробовал Groovy, мне было довольно трудно отлаживать, не получая сгенерированные.java
файлы.Взгляните на CoffeeScript: http://coffeescript.org
Он поддерживает многострочные строки, интерполяцию, понимание массивов и множество других приятных вещей.
источник
Если вы используете io.js, он поддерживает многострочные строки, как в ECMAScript 6.
См. «Новые строковые методы» на http://davidwalsh.name/es6-io для получения подробной информации и «строки шаблона» на http://kangax.github.io/compat-table/es6/ для отслеживания совместимости.
источник
В дополнение к принятому ответу:
что означает: "это \ nодна строка".
Если вы хотите использовать интерполяцию строк, но без новой строки, просто добавьте обратную косую черту, как в обычной строке:
=> 'это одна строка'.
Имейте в виду, что пробелы вручную необходимы:
=> 'это одна строка'
источник
Vanilla Javascipt не поддерживает многострочные строки. В наши дни языковые препроцессоры становятся возможными.
CoffeeScript, самый популярный из них, имеет эту функцию, но она не минимальная, это новый язык. Компилятор трассировки Google добавляет новые функции к языку в качестве надмножества, но я не думаю, что многострочные строки являются одной из дополнительных функций.
Я хочу создать минимальный набор javascript, который поддерживает многострочные строки и несколько других функций. Я начал этот небольшой язык некоторое время назад, прежде чем писать начальный компилятор для coffeescript. Планирую закончить этим летом.
Если предварительные компиляторы не подходят, есть также взлом тега сценария, при котором вы сохраняете свои многострочные данные в теге сценария в html, но даете ему настраиваемый тип, чтобы он не был исключен. Позже, используя javascript, вы можете извлечь содержимое тега скрипта.
Кроме того, если вы поместите \ в конце любой строки в исходном коде, это приведет к игнорированию новой строки, как если бы ее там не было. Если вам нужна новая строка, вы должны закончить строку "\ n \".
источник