Что самый чистый путь состоит в том, чтобы записать многострочной строке в JavaScript? [дубликат]

Я знаю, что это старая публикация, но в дополнение к ответу Дрю Марша и в ответ на проблему DanM с появлением стрелок заголовка столбца ... Вам необходимо добавить свойство SortDirection в DataGridColumn:


Я опубликовал вопрос по этому поводу и нашел ответ через несколько дней:

Стрелки ColumnHeader не отражаются при сортировке DataGrid в XAML

34
задан Robinicks 19 October 2009 в 15:07
поделиться

8 ответов

Практически идентичен ответу NickFitz:

var str = [""
    ,"line 1"
    ,"line 2"
    ,"line 3"
].join("");
// str will contain "line1line2line3"

Разница в том, что код немного более удобен в обслуживании, потому что строки можно переупорядочивать независимо от того, где находятся запятые. Синтаксических ошибок нет.

21
ответ дан 27 November 2019 в 16:21
поделиться

Вы могли бы сделать

str = "\
line 1\
line 2\
line 3";

Как упоминалось в комментариях, синтаксические анализаторы javascript прекрасно справляются с этим (он работает во всех основных браузерах), но официально не является частью синтаксиса сценария ECMA. Таким образом, он может работать или не работать с компрессорами, средствами проверки ошибок и не обязательно работать в браузерах.

Это может быть более читабельным, но не «лучший» способ сделать это. Возможно, сценарий ECMA когда-нибудь будет поддерживать что-то вроде @ "" в C #.

13
ответ дан 27 November 2019 в 16:21
поделиться

Да! Вы можете использовать символ \, чтобы JavaScript игнорировал символы конца строки .

str = 'line 1 \
line 2 \
line 3';

Однако, как указал Эльзо Валуги , это не будет проверяться с помощью JSLint.

2
ответ дан 27 November 2019 в 16:21
поделиться

This will only work in browsers with E4X support - I wish we could use it in IE

var str = <><![CDATA[

   Look, a multi-line
   string! < " // ' ? &

]]></>.toString();
2
ответ дан 27 November 2019 в 16:21
поделиться

Мне нравится эта версия (отличается от вашей только форматированием кода):

var str = "line 1"
        + "line 2"
        + "line 3";
16
ответ дан 27 November 2019 в 16:21
поделиться

FYI. То, как вы это предлагаете, является правильным и лучше, чем другие ответы. JsLint проверяет только вашу версию.

12
ответ дан 27 November 2019 в 16:21
поделиться
var str = [
    "line 1",
    "line 2",
    "line 3"
].join("");
// str will contain "line1line2line3"

Если вам действительно нужны символы новой строки в строке, замените .join ("") с .join ("\ n") /

10
ответ дан 27 November 2019 в 16:21
поделиться

Последовательно.

Какой бы способ вы ни выбрали, делайте это точно так же во всем приложении. Если вы работаете над приложением, в котором уже написан код, примите установленное соглашение и следуйте ему.

6
ответ дан 27 November 2019 в 16:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: