Trong JS, chuỗi string literal không thể ngắt dòng trực tiếp trong code. Phải dùng backslash (\) ở cuối dòng để escape newline — báo cho parser biết chuỗi tiếp tục ở dòng sau.
KHÔNG dùng backslash → Lỗi / Không output
<script>
document.getElementById('demo').innerHTML = "Javascript is
not java!"; // SyntaxError: Invalid or unexpected token
</script>
CÓ backslash → Hoạt động đúng
<script>
document.getElementById('demo').innerHTML = "Javascript is \
not java!"; // OK: "Javascript is not java!"
</script>
Kết quả
Javascript is not java!
Các cách khác để viết chuỗi đa dòng
1. Template Literal (ES6) — Khuyên dùng
const str = `Javascript is
not java!`; // Giữ nguyên newline trong string
2. Nối chuỗi với +
const str = "Javascript is " +
"not java!";
3. Array join
const str = [
"Javascript is",
"not java!"
].join(' ');
Lưu ý về backslash
- Backslash không nằm trong string kết quả — chỉ dùng để escape trong source code.
- Không được có khoảng trắng sau backslash (trước newline) — một số engine có thể báo warning.
- Trong template literal, backslash vẫn dùng escape:
\`Line 1\nLine 2\`.
Khi nào bắt buộc dùng backslash?
- Code ES5 hoặc môi trường không hỗ trợ template literal.
- String literal trong attribute HTML:
onclick="alert('Line 1 \\\n Line 2')" — cần double escape.