JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

scriptタグの「lang」属性と「type」属性の違いとは?

JavaScriptにおけるlang属性とtype属性の違い

HTMLの<script>タグには、使用するスクリプト言語を指定するための属性がいくつかあります。その中でも「lang(language)」属性と「type」属性はよく比較される存在ですが、それぞれ役割や現在の扱いが異なります。ここでは、両者の違いについて詳しく解説します。

JavaScriptのlang属性とは

「lang(language)」属性は、スクリプトタグ内でどのスクリプト言語を使用しているかを指定するための属性です。通常、値としては「javascript」が設定されます。

ただし、この属性は古い仕様のものであり、最近のHTML(および後継規格であるXHTML)では非推奨となり、段階的に廃止されています。そのため、現代のWeb開発では使用しないことが推奨されます。

JavaScriptのtype属性とは

「type」属性は、現在使用が推奨されている属性で、スクリプトで利用している言語のMIMEタイプを指定します。JavaScriptを使用する場合、値は「text/javascript」と設定するのが一般的です。

なお、HTML5以降ではtype属性自体も省略可能になっており、省略した場合は自動的に「text/javascript」として扱われます。ただし、モジュールスクリプトを読み込む場合などは「module」など別の値を指定することもあります。

記述例

以下は、両方の属性を指定したコードの例です。

<html>
   <body>
      <script language="javascript" type="text/javascript">
         <!--
            document.write("Hello World!")
         //-->
      </script>
   </body>
</html>

このように、かつては互換性のために両方の属性を併記することもありましたが、現在は「type」属性(またはHTML5での省略記法)を使うのが標準的な書き方となっています。

  1. HTMLのnovalidate属性とformnovalidate属性の違いを徹底解説!使い分けのポイントとは?

    HTMLには、フォーム送信時に入力内容の検証(バリデーション)をスキップするための属性が2つ用意されています。それがnovalidate属性とformnovalidate属性です。どちらも「検証を回避する」という目的は同じですが、適用対象と動作のタイミングが異なります。novalidate属性は<form>要素自体に指定し、フォーム全体の入力チェックを無効化します。一方、formnovalidate属性はtype=submitのボタンに指定する属性で、そのボタンが押された場合のみ検証を行わずにフォームを送信できます。HTML novalidate属性とはnovalidate属性は、

  2. JavaとJavaScriptの違いとは?歴史・技術・使い分けを徹底解説

    ウェブ開発者のジェレミー・キースは2009年、「JavaとJavaScriptの関係は、ハムとハムスターの関係のようなものだ」と語りました。この比喩がどれほど正確かは議論の余地がありますが、その本質は的確です。共通する言語的ルーツを持つにもかかわらず、JavaとJavaScriptはまったく異なる2つのプログラミング言語なのです。年月とともに両者の重なりも多少増えましたが、今なおJavaScriptはウェブサイトにインタラクティブ性をもたらすフロントエンド言語の主流であり続け、Javaはサーバーサイドやアプリケーション開発で人気を保っています。開発者を採用したい方、プログラミングを学びたい方