This has nothing to do with JavaScript "string parsing". Rather it's about HTML parsing.
It is simply not valid for HTML for a <script>
element to contain the sequence </script>
(actually, any </
although browsers are lenient on that) in it's content - any such sequence will always be treated as the closing tag.
See Escaping </script> tag inside javascript for lots of the details.
A common solution is thus to separate the sequence using string concatenation
var code = "<script><"+"/script>";
Although it is also valid to use an escape ("<script><\/script>"
) or an escape sequence ("<script><\x2fscript>"
).
The CDATA
approach should not be used with HTML, as it's only for XML.