CDATA标签在脚本标签中是必要的吗?如果是的话,什么时候?

换句话说,何时何地:

<script type="text/javascript">
//<![CDATA[
...code...
//]]>
</script>

更可取的是:

<script type="text/javascript">
...code...
</script>

当前回答

当浏览器将标记视为XML时:

<script>
<![CDATA[
    ...code...
]]>
</script>

当浏览器将标记视为HTML时:

<script>
    ...code...
</script>

当浏览器将标记视为HTML,而您希望XHTML 1.0标记(例如)生效时。

<script>
//<![CDATA[
    ...code...
//]]>
</script>

其他回答

当您想要验证它时(在XML/XHTML中-感谢Loren Segal)。

避免在XHTML验证期间出现XML错误。

不要在HTML4中使用CDATA,但你应该在XHTML中使用CDATA,如果你有像<和>这样的未转义符号,则必须在XML中使用CDATA。

CDATA在任何XML方言中都是必需的,因为XML节点中的文本在作为JavaScript计算之前被视为子元素。这也是JSLint抱怨正则表达式中的<字符的原因。

参考文献

创建声明性XML UI语言 Web的未来:富客户端、富浏览器、富门户

这是X(HT)ML的问题。当你在JavaScript中使用像<和>这样的符号时,例如比较两个整数,这将不得不像XML一样被解析,因此它们将标记为标记的开始或结束。

CDATA意味着下面的行(直到]]>的所有内容都不是XML,因此不应该以这种方式解析。