...
다양한 script 태그 표기법
몇몇 웹페이지를 보면(티스토리 포함) 스크립트 태그에 자바스트립트의 마임타입으로 type=text/javascript를 사용하는 걸 볼 수 있다. 그런데 어떤 다른 웹페이지에서는 type=application/javascript로 사용한다. 보통 script태그는 그냥 바로 정의하고 src속성으로 소스 링크를 지정하고 마는데 저 type속성 지정문은 무엇을 뜻 할까? 이번 포스팅은 이 둘의 명확한 차이점을 정리하는 시간을 가져보자.
<script language="javacript">
</script>
<script type="text/javascript">
</script>
<script type="application/javacript">
</script>
text/javascript vs application/javascript
간단하게 둘을 비교하면 아래 표와 같다.
text/javascript | application/javascript |
HTML 4.01 (1999) 스펙 | RFC 4329 (2006) 스펙 |
HTML4, HTML5 지원 | HTML5 지원 |
Obsolete (구식) | Now Recommended (추천) |
이렇게 보면 application/javascript가 최신 스펙이니 최신걸로 사용해야겠라 생각할 수 있다. 하지만 문제는 서비스에서 지원하는 브라우저의 범위이다. application/javascript를 사용할 경우에는 IE8 이하는 지원이 되지 않게 된다.
'application/javascript'는 RFC4329에 세계 표준으로 기존의 자바스크립트 선언 대신 이렇게 선언하라고는 표준으로 제정한 문장이다. 하지만 이는 HTML5에서는 동작하지만, 특정 브라우저에서 지원하지 않는 버그 등으로 인해 그저 말뿐인 표준일 뿐이다. 거기다 application/javascript를 명시할시, 하위 브라우저에서 const 키워드가 먹히지 않으며, 변수 등을 찾지 못하는 등 정상적인 스크립트 기능이 되지 않기도 한다.
반면 <script></script>의 경우는 브라우저 엔진에서 <script type="text/javascript"></script>으로 재번역해서 해석한다고 한다. 그래서 몇몇 웹사이트들을 보면 어떤 곳은 <script></script> 또 어떤 곳은 <script type="text/javascript"></script>을 즉 두 개를 번갈아 사용하기도 한다
최종 정리하자면, 아무리 HTML표준이라고 하지만, 말로만 표준일뿐 굳이 쓰지 않아도 전혀 문제가 없으니 그냥 지금처럼 사용했듯이 빈칸으로 놔두면 된다.
<script language="javacript"></script>는 아주 초창기에 쓰였으나 지금은 사용하지 않는다.
# 참고자료
https://pshcode.tistory.com/43
https://sayit.tistory.com/entry/textjavascriptVSapplicationjavascript-%EC%96%B4%EB%96%A4%EA%B2%83%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%95%BC-%ED%95%98%EB%8A%94%EA%B0%80
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.