为什么js无法理解字符串'</ script>'?

set*_*tec 1 html javascript tags alert

我有一个简单的javascript (jsFiddle):

alert('</script>');
Run Code Online (Sandbox Code Playgroud)

浏览器无法理解它.
这是控制台输出:

Uncaught SyntaxError: Unexpected token ILLEGAL 
Run Code Online (Sandbox Code Playgroud)

但是这个脚本有效(jsFiddle):

alert('</scriptt>');//shows alert text '</scriptt>'
Run Code Online (Sandbox Code Playgroud)

是某种浏览器错误还是正常ECMAScript行为?

(浏览器是Chrome)

Gov*_*ngh 8

因为它被认为是:

<script>
alert('
</script>
');
Run Code Online (Sandbox Code Playgroud)

这是一个 SyntaxError

您可以使用

alert( '<\/script>\n');
Run Code Online (Sandbox Code Playgroud)


oox*_*oxi 5

HTML解析器不理解JavaScript,因此寻找关闭标签的东西</script>.如果您需要'</script>'在JavaScript中使用字符串,只需使用'</s'+'cript>'.

JavaScript本身没有这样的问题,var x = '</script>';在nodejs中使用是没有问题的.HTML解析器是.