String multi-baris di JavaScript

Saat memprogram dengan JavaScript, seseorang sering tersandung pada ketidakmampuan untuk mewujudkan string multi-baris dengan juga memasukkannya dalam beberapa baris dalam kode. Meskipun tugas dalam bahasa lain seperti PHP atau Ruby tidak menjadi masalah, dengan JavaScript Anda awalnya hanya dapat menyelesaikan masalah, yang penggunaannya ditentukan oleh selera pribadi atau dukungan browser.


Upaya yang jelas

var str = "Dies ist eine
mehrzeilige
Zeichenkette.";

gagal dan parser mengeluhkan beberapa hal (berupa token ILEGAL yang tidak terduga) karena JavaScript (berbeda dengan bahasa pemrograman lain seperti PHP) secara otomatis memasukkan titik koma setelah akhir setiap baris:

var str = "Dies ist eine;
mehrzeilige;
Zeichenkette.";

Solusi pertama untuk masalah ini terdiri dari rangkaian string sederhana melalui operator \ n dan +:

var str = "Dies ist eine\n" +
"mehrzeilige\n" +
"Zeichenkette.";

Jika Anda lebih suka varian yang tidak terlalu lambat dan sedikit lebih bagus, tambahkan garis miring terbalik di akhir setiap baris:

var str = "Dies ist eine\n\
mehrzeilige\n\
Zeichenkette";

Sebagai alternatif, Anda juga dapat menggunakan metode gabung dan mendapatkannya:

var str = ["Dies ist eine",
"mehrzeilige",
"Zeichenkette"].join("\n");

Sebaliknya, jika mata Anda berbinar dengan ekspresi reguler, gunakan sintaks berikut (match () untuk memfilter nilai di antara komentar):

var str = (function () {/*Dies ist eine
mehrzeilige
Zeichenkette*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];

Penting: Jika kode diminimalkan, solusi ini dapat dilupakan (karena komentar juga dihapus).

Varian terbaik berhasil dengan ECMA6 dan bantuan string template:

var str = `Dies ist eine
mehrzeilige
Zeichenkette`;
Kembali