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.";

Proses tersebut gagal dan parser kemudian mengeluhkan beberapa hal (dalam bentuk Unexpected token ILLEGAL), karena JavaScript (tidak seperti bahasa pemrograman lain seperti PHP) secara otomatis menyisipkan 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.";

Untuk opsi yang lebih cepat dan agak lebih rapi, 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