domanda è vecchio ma voglio dare una risposta chiara e spiegare il motivo per cui questo accade per gli altri che viene qui:
Prima di tutto, non c'è niente di sbagliato con la linea di codice JavaScript nella questione. È assolutamente valido e non produce errori di analisi. La ragione del problema nel caso di Vitalmax era probabilmente dovuta al fatto che lui/lei non ha pubblicato codice aggiuntivo, che circondava quella linea.
Ecco un esempio in PHP, che mostra il motivo per cui il parser JS lamenta la sintassi:
<?php
echo "alert('Hello again! This is how we\nadd line breaks to an alert box!');";
?>
L'uscita lato server analizzati allora è (questo è ciò che il browser ottiene):
alert("Hello again! This is how we
add line breaks to an alert box!");
In JavaScript, le stringhe non devono presentare interruzioni di riga reali. Invece, devono sempre essere sfuggiti (come: \ n), quindi il browser si lamenta di un "letterale stringa non terminato" durante la vera interruzione di riga. Ci sono alcune eccezioni a questa regola, come per i tabulatori orizzontali (\ t). Quindi (in questo caso) devi sfuggire alle interruzioni di riga due volte con \\ n. Quindi, quando PHP lo analizza e lo converte da \\ n a \ n, JavaScript può convertirlo da \ n a [interruzione di linea reale].
esempio PHP corretta sarebbe:
<?php
echo "alert('Hello again! This is how we\\nadd line breaks to an alert box!');";
?>
Oppure:
<?php
echo 'alert("Hello again! This is how we\nadd line breaks to an alert box!");';
?>
Nel secondo caso non c'è bisogno di raddoppiare scappare perché caratteri di escape all'interno di stringhe PHP con virgolette singole non sono decodificato (\ n rimane \ n).
Il codice incriminato non è quel pezzo di codice. Si noti che i messaggi syntaxerror sono quasi sempre fuorvianti – Esailija
quando aggiungo // prima di questa linea tutto funziona correttamente – Pave
Tuttavia, se si esegue quel codice in isolamento, funzionerà normalmente, l'ho appena testato. Si prega di fornire più codice. – Esailija