JavaScriptとHTMLDOMとは(できれば)分けて考えましょう.
-
JavaScriptはプログラム言語の一つです. 今日ではWEBブラウザ上のみならず, 直接JavaScriptコードを実行する環境も増えてきています. (典型的な例としてはWSHやNode.js)
-
HTMLDOMはHTML文書をプログラムから操作するためのインターフェースの仕様を指します. そのため, (理屈上は)JavaScript言語以外のプログラム言語でもHTMLDOMが用意されていることがあります.
あなたは今WEBブラウザ上でのプログラミングを通して, このJavaScriptとHTMLDOMとの組み合わせを学んでいることになります.
NOTE:
とは言え, WEBブラウザにはこの「JavaScriptとHTMLDOMとの組み合わせ」しか無いので, しばしば「JavaScript=HTMLDOM」と言った乱暴な文脈で語られることも多いのですが, 本来はきちんと概念も仕様もわけられています. 初めは難しいかもしれませんが, おいおいその理由は見えてくるでしょう.
innerHTMLはHTMLDOMを学習していると出てきますが、これってjavascriptとして<script></script>
の中に書くjavascriptの文法だと思っているのですが、
HTML文書内のscript
要素はHTMLの仕様(WEBブラウザの振る舞いを指定するもの)において, 「プログラムが書かれている」要素として定められています. そのため, script
要素の中にJavaScript言語によるスクリプトコードを書いておくと, WEBブラウザがHTML文書を読み込んだ際に自動的にJavaScript言語として中身のコードを実行してくれます.
NOTE:
例外もあるのですが, ここでは割愛します.
その際にHTML仕様として「script
要素内のコードからはHTMLDOMを介してHTML文書を操作できる」ことになっているので, innerHTML
等のHTMLDOMの仕組みがJavaScriptコードに現れてくるのです.
もちろん正しくコードが動作するためにはJavaScriptとしての「文法」やHTMLDOMとしての「作法(API)」を守る必要があります.