Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

text/javascript(テキスト スラッシュ ジャバスクリプト)とは | 意味や読み方など丁寧でわかりやすい用語解説

text/javascript(テキスト スラッシュ ジャバスクリプト)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

テキストジャバスクリプト (テキストジャバスクリプト)

英語表記

text/javascript (テキストスラッシュジャバスクリプト)

用語解説

text/javascript とは、Web上で扱うデータの種類を示す「MIMEタイプ(メディアタイプ)」の一つだ。これは具体的に「このデータは人間が読めるテキスト形式で書かれたJavaScriptコードである」という情報を、WebブラウザやWebサーバーに伝える役割を持つ。主にHTMLファイル内で外部のJavaScriptファイルを読み込んだり、HTML内に直接JavaScriptコードを記述したりする際に使う <script> タグの type 属性に指定されてきた。かつては必須の指定だったが、Web技術の進化とともにJavaScriptがクライアントサイドスクリプトの事実上の標準となったため、現代では多くのケースでこの指定を省略しても問題なく動作するようになっている。しかし、その歴史的な経緯と背後にある意味を理解することは、Web技術の基礎を学ぶ上で非常に重要だ。

MIMEタイプは「Multipurpose Internet Mail Extensions」の略で、元々は電子メールの添付ファイルの種類を識別するために開発された技術だが、その汎用性の高さからWeb上でのデータ識別にも広く採用された。Webの世界では、サーバーがクライアント(通常はWebブラウザ)にデータを送信する際、そのデータが何であるかを伝える必要がある。例えば、HTMLファイルなら text/html、JPEG画像なら image/jpeg、PDFファイルなら application/pdf といった具合に、大分類/小分類 の形式でデータの内容を明確に伝える。text/javascript の場合、「text」は人間が読めるプレーンテキスト形式のデータであることを示し、「javascript」はそのテキストの内容がJavaScriptというプログラミング言語のコードであることを意味する。

このMIMEタイプは、HTMLの <script> タグと密接な関係がある。初期のWebでは、JavaScriptだけでなく、Microsoftが開発したVBScriptなど、複数のクライアントサイドスクリプト言語が存在したため、<script> タグの中に書かれたコードがどの言語で書かれているかをブラウザに明示的に伝える必要があった。例えば、JavaScriptコードの場合は <script type="text/javascript"> と書き、VBScriptの場合は <script type="text/vbscript"> と指定していた。ブラウザは type 属性の値を見て、適切なスクリプトエンジン(JavaScriptエンジンまたはVBScriptエンジンなど)を起動し、コードを解釈・実行していた。もし type 属性が指定されていない場合、ブラウザはどの言語のスクリプトか判断できず、コードを実行できないか、エラーを発生させる可能性があった。

しかし、Webの進化の過程で、VBScriptなどの他のスクリプト言語はほとんど使われなくなり、JavaScriptがクライアントサイドスクリプトのデファクトスタンダード(事実上の標準)となった。このような状況を受け、HTML5の標準仕様では、<script> タグの type 属性が省略された場合、ブラウザはデフォルトで text/javascript が指定されたものとして、その内容をJavaScriptコードとして解釈・実行するよう定められた。これは、Web開発者が余計な記述を減らし、コードをより簡潔に書けるようにするための改善であり、Webの発展を促進する目的があった。現代のWeb開発では、このため特別な理由がない限り type="text/javascript" の記述は省略されることがほとんどだ。ただし、古いWebブラウザや、HTML5以前の標準に厳密に準拠する必要がある特定の環境では、後方互換性のためにこの属性を明示的に指定することが依然として推奨される場合もある。

また、text/javascript はHTML内での使用だけでなく、HTTP通信においても重要な役割を果たす。Webサーバーが外部のJavaScriptファイル(.js 拡張子のファイルなど)をクライアントに送信する際、HTTPレスポンスヘッダの Content-Type フィールドに text/javascript を含めて送信するのが一般的だ。例えば、「Content-Type: text/javascript; charset=UTF-8」のような形式で送信される。これにより、ブラウザはダウンロードしたファイルがJavaScriptコードであることを確実に認識し、適切にキャッシュしたり、セキュリティポリシーに基づいて実行したりできる。もしこの Content-Type ヘッダが適切に設定されていない場合、ブラウザがファイルの種類を誤認し、正しくスクリプトを実行できなかったり、セキュリティ上の脆弱性につながったりするリスクがある。

近年では、JavaScriptのモジュールシステム(ES Modules)を使用する際に <script type="module"> と指定するように、JavaScriptの新しい実行方法を示すための異なる type 属性値も登場している。しかし、これらは text/javascript の基本的な役割や重要性を置き換えるものではなく、JavaScriptエコシステムにおける多様性の一部だ。text/javascript は、Webがどのようにデータの種類を識別し、ブラウザがどのようにスクリプトを解釈・実行してきたかという、Webの歴史と基盤を理解するための重要なキーワードであり続けるだろう。

関連コンテンツ