-
[JavaScript] CDATA 선언문Legacy/Web 2015. 7. 11. 14:43728x901234567891011121314151617181920<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko"><head><title> new document </title><meta http-equiv="content-type" content="text/html;charset=utf-8" /><script type="text/javascript">//<![CDATA[var num=100;var str="자바스크립트";document.write(typeof num, "<br />");document.write(typeof str, "<br />");//]]></script></head><body></body></html>
cs 위의 예제에 사용된 //<![CDATA[ //]]>는 무엇일까??
이것을 CDATA 선언문이라고 한다. 이 CDATA 선언문은 왜 작성하는 것일까??
이를 이해하려면 <head>태그에 올 수 있는 데이터가 어떤 것들이 있는지 생각해보자.
<head>태그에 올 수 있는 데이터는 <title>이나 <meta> 또는 <script> 같은 HTML 문서의 '본문(body)'에 적혀서 사용자 눈에 보이는 데이터들이 아니다.
그런데 이 <head>태그 안에 <br />태그가 존재하고 있다. 이것은 HTML 문서의 유효성(Validate)를 검사하는 파서(Parser)의 입장에서는 이것이 잘못되었다고
간주하여 사용자에게 경고 메시지를 띄워줄 수 있다. 경우에 따라 이것을 단순 경고가 아닌 오류로 처리하여 없는 라인으로 처리해버리는 경우
역시 발생할 수도 있기 때문에 위와 같은 경우 반드시 CDATA 선언을 해주어야한다.
CDATA 선언을 하면 왜 경고를 띄우지 않을까? CDATA 선언이 경고를 무시하도록 하는 것이 아니라
CDATA 선언을 하면 그 선언 안에 있는 내용들 중 '태그'가 있어도 그것을 '태그'로 작성한 것이 아니라 '문자열'의 일부로 작성한 것이라는 것을 알려주는 것이다.
때문에 JavaScript 안에 태그가 들어갈 경우 반드시 CDATA 선언 안에 넣어줘야한다.
'Legacy > Web' 카테고리의 다른 글
[JavaScript] JavaScript Event Handler (0) 2015.07.13 [JavaScript] DOM(Document Object Model) (0) 2015.07.13 [JavaScript] BOM(Browser Object Model) (2) 2015.07.13 [JavaScript] 자바스크립트의 객체 (0) 2015.07.12 [JavaScript] 조건식에 논리형(Boolean)이 아닌 다른 형이 오는 경우 (0) 2015.07.11 인기 있는 소셜 네트워크 서비스로 본 아키텍처 (0) 2015.07.04 [HTML] div 태그 (0) 2015.07.04 검색 잘되는 웹문서 만들기 (0) 2015.07.04 GET과 POST의 차이 (0) 2015.07.04 [JavaScript] JavaScript Object prototype 이해하기 (2) 2015.06.13