Câu hỏi là cũ nhưng tôi muốn đưa ra một câu trả lời rõ ràng và giải thích lý do tại sao điều này xảy ra cho những người khác đến đây:
Trước hết, không có gì sai với dòng mã JavaScript trong câu hỏi là. Nó hoàn toàn hợp lệ và không tạo ra lỗi phân tích cú pháp. Lý do cho vấn đề trong trường hợp của Vitalmax là rất có thể bởi vì anh/cô ấy không đăng mã bổ sung, bao quanh dòng đó.
Dưới đây là một ví dụ trong PHP, trong đó cho thấy tại sao các phân tích cú pháp JS phàn nàn về cú pháp:
<?php
echo "alert('Hello again! This is how we\nadd line breaks to an alert box!');";
?>
Sản lượng server-side phân tích cú pháp sau đó là (đây là những gì các trình duyệt được):
alert("Hello again! This is how we
add line breaks to an alert box!");
Trong JavaScript, các chuỗi không được có ngắt dòng thực. Thay vào đó, chúng phải luôn luôn được thoát (như: \ n), do đó trình duyệt phàn nàn về "chuỗi ký tự chưa được hoàn thành" ở ngắt dòng thực. Có một số ngoại lệ đối với quy tắc này, như đối với các trình lập bảng ngang (\ t). Vì vậy, (trong trường hợp này) bạn phải thoát khỏi các ngắt dòng hai lần với \\ n. Vì vậy, khi PHP phân tích cú pháp và chuyển đổi nó từ \\ n thành \ n, JavaScript có thể chuyển đổi từ \ n thành [ngắt dòng thực].
Đúng PHP ví dụ sẽ là:
<?php
echo "alert('Hello again! This is how we\\nadd line breaks to an alert box!');";
?>
Hoặc:
<?php
echo 'alert("Hello again! This is how we\nadd line breaks to an alert box!");';
?>
Trong trường hợp thứ hai bạn không cần phải tăng gấp đôi thoát khỏi nó bởi vì nhân vật thoát trong chuỗi PHP với dấu nháy đơn không đã giải mã (\ n lần \ n).
Mã vi phạm không phải là đoạn mã đó. Lưu ý rằng các thông báo cú pháp cú pháp hầu như luôn gây hiểu lầm – Esailija
khi tôi thêm // trước khi dòng này hoạt động tốt. – Pave
Tuy nhiên, nếu bạn chạy mã đó trong sự cô lập, nó sẽ hoạt động bình thường, tôi vừa kiểm tra nó. Vui lòng cung cấp thêm mã. – Esailija