2013-08-14 1 views
-1

Этот фрагмент кода дает ошибку:Как использовать строки в javascript?

var test = '1 
2 
3 
4'; 

Что делать, если я хочу, чтобы хорошо структурировать код в JavaScript, как это:

var return = ' 
<div> 
    content 
</div> 
'; 

Как сделать это?

+0

ли Вы просто хотите строку * Объявление * должно быть многострочным, чтобы код читался, или вы также хотите, чтобы строка * content * была многострочной, чтобы строка читалась, когда она отображается как вывод? – apsillers

+0

@apsillers Если строка используется для хранения HTML, это может быть неважно (хотя в некоторых случаях это правильный вопрос) – Katana314

+0

Пожалуйста, обратите внимание, что это дубликат перед добавлением еще одного ответа. –

ответ

2

Невозможно проложить линии, как вы описали.

Если вы используете оператор + и закрыть строки вы можете сделать что-то вроде этого:

var retVal = '<div>' + 
       'content' + 
      '</div>'; 
1

Причина код выдает ошибку, потому что Javascript использует automatic semicolon insertion

Если вы хотите, чтобы структурировать большая строка в нескольких строках вы лучше делать что-то вроде этого -:

var returnValue = '<div>' + 
        'content' + 
        '</div>'; 
0

В JavaScript не допускаются литеральные разрывы строк в строках. (Похоже, что это неправильно, см stackErr's answer, например.) Есть два полу-разумные подходы: использовать оператор + (как другие предложили) или поместить свои строки в массиве, а затем вызвать join('\n') на массиве:

var return = [ 
    '<div>', 
    ' content', 
    '</div>' 
].join('\n'); 

Последнее не очень эффективно, но в большинстве случаев это, вероятно, не имеет значения.

Если вы обнаружите, что делаете это много (с программным обеспечением создания нескольких небольших фрагментов HTML), стоит обратить внимание на библиотеку шаблонов, такую ​​как Mustache.

1

Если вы хотите написать многострочный JavaScript, вы можете использовать \ или, если хотите разрывы строк, вы можете использовать \n.

Так что-то подобное для многострочно:

var returnVal = '<div> \ 
        content \ 
       </div>'; 

или если вы хотите разрывы строк в выводе строки:

var reutrnVal = '<div> \n content\n </div>' 

или вы можете сцепить с помощью «+»:

var returnVal = '<div>' + 
' content' + 
'</div>'; 
0

Если вы закончите линию с помощью \, то ваша строка может продолжаться на следующем линия.

var return = '\ 
<div>\ 
    content\ 
</div>\ 
'; 
0

Там хороший трюк для создания строк многострочных в JavaScript, которые не связаны с спасаясь линию кормов для каждой линии, описанной в http://tomasz.janczuk.org/2013/05/multi-line-strings-in-javascript-and.html.В принципе, вы бы определить функцию только с комментарием, содержащим несколько строк струн вы хотите, вызовите toString на эту функцию и раздеть комментарий, как в этом примере ниже:

var html = (function() {/* 
    <!DOCTYPE html> 
    <html> 
    <body> 
     <h1>Hello, world!</h1> 
    </body> 
    </html> 
*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1]; 
Смежные вопросы