script标签里写CDATA的原因

标签:JavaScript

一直没弄懂为什么很多网页喜欢在script标签里写CDATA,即:
<script type="text/javascript">
//<![CDATA[
//一些JavaScript代码
//]]>
</script>
今天才在这里看到,原来与XML解析有关。

如今越来越多的网页是用XHTML来编写的,为了使其能顺利被XML解析器解析,文档内部是不允许出现<&字符的,必须以&lt;&amp;来代替。
这就导致书写JavaScript代码很不方便,因为无法直接用<符号来比较2个值,也无法用&&来实现与运算。
但事实上,XML解析器解析只是用于解析XHTML文档的,并不需要管JavaScript的内容,所以直接将JavaScript代码放在<![CDATA[]]>之间,便可让解析器忽略它。

至于下面这种写法,我觉得应该是沿用了html的方式来注释,个人不推荐这种写法:
<script type="text/javascript">
<!--
//一些JavaScript代码
//-->
</script>
因为在XHTML的注释里是不允许出现2个连续的-符号的,也就意味着不能使用自减运算符。

顺带一提,EditPlus默认生成的是第2种代码,其实只要打开EditPlus文件夹下的XHTMLBAR.ACP文件,找到第2段代码,改成第1段即可。

0条评论 你不来一发么↓

    想说点什么呢?