Блок CDATA необходим при использовании HTML и XHTML, чтобы указать парсеру, что не надо анализировать то, что находится внутри этого блока. Если не задать эти метки, парсер может воспринять JavaScript-код как XML-данные и посчитать код невалидным и остановить анализ документа. Комментарии перед CDATA ставятся, чтобы не нарушить структуру JavaScript.
Давайте перейдём к примерам. При подключении скриптов в HTML следующий код может вызвать конфликт:
<script> var x = ''</script>''; alert(x) </script>
Как видите, здесь закрывающий тег script используется внутри переменной, что может быть некорректно воспринято парсером.
В XHTML разметке тег script вообще не считается чем-то особенным, он такой же, как и другие теги, в некоторых случаях он даже может содержать дочерние ноды между символами < и >
. Поэтому следующий код будет невалидным:
<script> if (a<b && c<d) { alert(''Hello!''); } </script>
Короче. Если в Вашем JavaScript используются символы & и <
, то блок CDATA использовать обязательно. Если нет — можете его опустить.
Для скриптов, которые подключаются через внешние файлы, использовать данный блок нет необходимости.