SyntaxError: string literal contains an unescaped line break
Lỗi JavaScript "string literal contains an unescaped line break" xảy ra khi có một chuỗi ký tự chưa kết thúc ở đâu đó. Chuỗi ký tự phải được bao bọc bởi dấu nháy đơn (') hoặc dấu nháy kép (") và không thể trải dài trên nhiều dòng.
Thông báo
SyntaxError: Invalid or unexpected token (V8-based) SyntaxError: '' string literal contains an unescaped line break (Firefox) SyntaxError: Unexpected EOF (Safari)
Loại lỗi
SyntaxError
Điều gì đã xảy ra?
Có một chuỗi ký tự chưa kết thúc ở đâu đó. Chuỗi ký tự phải được bao bọc bởi dấu nháy đơn (') hoặc dấu nháy kép ("). JavaScript không phân biệt giữa chuỗi dấu nháy đơn và chuỗi dấu nháy kép. Chuỗi thoát hoạt động trong các chuỗi được tạo bằng dấu nháy đơn hoặc dấu nháy kép. Để sửa lỗi này, hãy kiểm tra:
- bạn có dấu nháy mở và đóng (dấu nháy đơn hoặc kép) cho chuỗi ký tự của mình,
- bạn đã thoát chuỗi ký tự đúng cách,
- chuỗi ký tự của bạn không trải dài trên nhiều dòng.
Ví dụ
>Nhiều dòng
Bạn không thể chia một chuỗi trên nhiều dòng như thế này trong JavaScript:
const longString = "This is a very long string which needs
to wrap across multiple lines because
otherwise my code is unreadable.";
// SyntaxError: unterminated string literal
Thay vào đó, hãy sử dụng toán tử +, dấu gạch chéo ngược, hoặc template literal. Biến thể sử dụng toán tử + trông như sau:
const longString =
"This is a very long string which needs " +
"to wrap across multiple lines because " +
"otherwise my code is unreadable.";
Hoặc bạn có thể sử dụng ký tự gạch chéo ngược ("\") ở cuối mỗi dòng để chỉ ra rằng chuỗi sẽ tiếp tục trên dòng tiếp theo. Hãy đảm bảo không có khoảng trắng hoặc bất kỳ ký tự nào khác sau dấu gạch chéo ngược (ngoại trừ ngắt dòng), hoặc như là khoảng thụt; nếu không nó sẽ không hoạt động. Dạng đó trông như sau:
const longString =
"This is a very long string which needs \
to wrap across multiple lines because \
otherwise my code is unreadable.";
Một khả năng khác là sử dụng template literal.
const longString = `This is a very long string which needs
to wrap across multiple lines because
otherwise my code is unreadable.`;