javascript
Время для прочтения: 0 мин. 55 сек.

Многострочные переменные в JavaScript

В многих языках программирования есть heredoc-синтаксис для создания многострочных переменных, содержащих как одинарные кавычки, так и двойные. В JavaScript же явного определения heredoc нет. Как же быть?

Попробуем решить данный вопрос.

Как обстоят дела, например, в РНР?

Обычное определение строки в РНР:

$s = 'Кавычки бывают \'одинарными\'';
$t = "Кавычки бывают \"двойными\"";

heredoc-определение в PHP:

$s = <<<EOL
	Кавычки бывают 'одинарными' и "двойными".
	Да еще и в несколько строк.
EOL;

Что есть в JavaScript?

Обычно мы используем конкатенацию строк


var multiline = 'Первая строка'+
'Вторая строка'+
'Третья строка';

Второй вариант — экранирование переводов строк


var multiline = 'Первая строка\
Вторая строка\
Третья строка';

У данного метода наблюдаются проблемы с браузером Internet Explorer

Третий вариант — CDATA


var multiline = ""+<r><![CDATA[
Первая строка
Вторая строка
Третья строка
]]></r>;

У данного метода наблюдаются проблемы с браузером Internet Explorer, Google Chrome

Можно попробовать и так:


var multiline = <>
Первая строка
Вторая строка
Третья строка
</>.toString();

Как видите, вариантов несколько, какой из них выбрать дело ваше, но кроссбраузерный лишь первый из них (конкатенация строк).

RTFM

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.