为什么js无法理解字符串''?

时间:2014-04-30 11:12:55

标签: javascript html tags alert

我有一个简单的javascript (jsFiddle)

alert('</script>');

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

Uncaught SyntaxError: Unexpected token ILLEGAL 

但是这个脚本有效(jsFiddle)

alert('</scriptt>');//shows alert text '</scriptt>'

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

(浏览器是Chrome)

3 个答案:

答案 0 :(得分:8)

因为它被认为是:

<script>
alert('
</script>
');

这是SyntaxError

您可以使用

alert( '<\/script>\n');

答案 1 :(得分:5)

HTML解析器无法理解JavaScript,因此会查找关闭标记</script>的内容。如果您需要'</script>'作为JavaScript中的字符串,只需使用'</s'+'cript>'

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

答案 2 :(得分:1)

这是嵌入在HTML脚本标签中的Javascript,对吗?

然后HTML解析器在中间终止你的脚本。

将Javascript放入自己的文件中或分解字符串文字。也许CDATA部分也有效。

相关问题