innerHTML, innerText 等の違い (HTML タグとして認識されるものとそうでないものの違い)

ふと innerHTML と innerText の違いについて, ブラウザでどのように解釈されるかなどをしっかりと理解していないような気がしたため調べたことの覚え書き.

基礎知識

HTML の要素? (厳密な表現かどうかは不明) には以下のようなプロパティが存在 (リンクは MDN Web Docs の該当ページ)

セキュリティの文脈では主に innerHTML とそれ以外で分けているイメージがあり, ユーザー入力が innerHTML に反映される場合はタグを注入することが可能になるため注意が必要となる.

以下のような場合において innerHTML では alert() 関数が起動する.

hoge.innerText = "<script>alert(1)</script>" # script tag is not enabled

hoge.innerHTML = "<script>alert(1)</script>" # script tag is enable
        

innerText と textContent の違いについて

innerHTML とその他の取り扱いの違い

innerHTML とセキュリティについて

"Note: script elements inserted using innerHTML do not execute when they are inserted."