Vad jag förstår så ska båda koderna göra så att parsern struntar i den som står innanför? På W3Schools använder de båda de här sätten att kommentera när de ger exempel på JavaScript och hur man ska göra för att en gammal webläsare inte ska skriva ut scriptet i klartext.
Vad jag förstår så är det senare exemplet med CDATA mer riktigt att använda, men jag förstår inte varför. Om båda gör samma sak så är det ju lättare att använda det övre.
CDATA är det mer xml-korrekta sättet att göra det på, det stämmer. En kommentar ska just vara en kommentar, och egentligen ska den helt ignoreras av parsern. CDATA däremot, säger att "alla tecken innan nästa förekomst av ]]> ska tolkas precis som de är", vilket betyder att man kan använda <, > och & precis som man behagar utan att det blir parsningsfel. Som en fotnot kan även nämnas att -- i ett script som ligger inom kommentar borde ge parsningsfel (vilket det inte gör, men ändå).
Anledningen till att man använde kommentarer var för att jättejättegamla browsers som inte förstod script-taggen skulle ignorera innehållet, men det är knappast motiverat idag. Browsers som stöder HTML 4 men inte kan köra script förstår ändå scripttaggen, och vet att det som är däri inte ska visas.
Det här gäller inte för HTML. Man kan inte använda CDATA-sektioner i HTML. (Vilket också gäller för "XHTML som text/html".)
<script> i HTML är ett sk "CDATA-element", vilket betyder att man kan redan använda < och & som man vill; det enda man behöver vara försiktig med är att använda "</script" inuti eftersom det förmodligen stänger elementet... ;) Mer konkret så är "<!--" i <script> inte en början på en kommentar utan bara texten "<!--", och samma gäller för "<![CDATA[" och "<gobbledegook" (men de två senare resulterar förmodligen i syntaxfel i JS-motorn).
267 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849