速報

SageMaker SDKの既定バケットに所有者確認漏れ|成果物の改変を防ぐ更新と点検

CATEGORY

【JavaScript】変数の文字列を表示する

※本ページのリンクにはプロモーションが含まれています。

【JavaScript】変数の文字列を表示する

目次

本記事では、JavaScriptで変数の文字列を表示する方法をご紹介しています。

JavaScriptで変数に代入した文字列をページに表示したいんだけど、どうすればいいの?

上記の疑問にお答えしています。

では、解説していきます。

スポンサーリンク

文字列を出力する方法

JavaScriptで変数に代入した文字列をページに表示する方法はいくつかありますが、代表的なものは下記の通りです。

  • textContent
  • innerHTML

※以前はdocument.write()も使われていましたが、現在は非推奨とされているため除外しています。

それぞれの使い方を見ていきましょう!

textContent

textContentは、テキストを取得・設定することができるNodeのプロパティです。HTMLは解釈されずにそのままテキストとして出力されます。また、textContentでテキストノードを設定すると、既存のコンテンツは新しいコンテンツに置き換えられます。(textContentでテキストを設定する要素内に他の要素や文字列が設定されていた場合、それらは削除されます。)

では、実際にtextContentで変数に代入した文字列を<body>に出力してみます。

let el = document.body;
let str = "こんにちは!";

el.textContent = str;

実行結果を確認してみましょう。

See the Pen 6021-1 by ryohei (@intotheprogram) on CodePen.

変数に代入したテキストが<body>内に表示されているかと思います。このようにtextContentは、指定した要素内にテキストを設定することができます。

続いて、冒頭でご説明した下記の点を確認していきたいと思います。

  • 既存のコンテンツは置き換えられる
  • マークアップはテキスト扱いになる

既存のコンテンツは置き換えられる

textContentは、コンテンツを設定する際に既存のコンテンツと置き換える形で動作します。確認のため、予め<body>に下記の要素がある状態で上記で使用したスクリプトを実行してみましょう。

<dody>
    <h1>おはようございます!</h1>
</body>

実行結果をご確認ください。

See the Pen 6021-1-1 by ryohei (@intotheprogram) on CodePen.

予め持っていた<body>が持っていた<h1>おはようございます!</h1>という要素は、新しい要素に置き換えられています。textContentでテキストを設定すると、既存の要素は置き換えられる点をご認識いただければと思います。

マークアップはテキスト扱いになる

textContentはHTMLを解釈しません。設定しようとする文字列にHTMLのタグを含めるとそのまま文字列として出力します。

試しにHTMLのタグを含めた文字列を出力してみましょう。

let el = document.body;
let str = "<h1>こんにちは!</h1>";

el.textContent = str;

実行結果はご想像の通りです。

See the Pen 6021-1-2 by ryohei (@intotheprogram) on CodePen.

HTMLのタグは解釈されず、そのまま文字列として出力されています。textContentを使用する場合は動きを理解しておくことでより使いやすいプロパティになるかと思います。

続いてinnerHTMLについてお話していきます。

スポンサーリンク

innerHTML

innerHTMLは、要素を取得・設定することができるelementのプロパティです。innerHTMLで要素を設定すると、既存の要素を新しい要素に置き換えられます。(既存の要素は削除されます。)

前項でご紹介したtextContentとの違いは、HTML要素を解釈するという点です。innerHTMLは文字列だけではなくHTML要素(h1、pなど)を含めて出力することができます。

let el = document.body;
let str = "<h1>こんにちは!</h1>";

el.innerHTML = str;

実行結果を確認してみましょう。

See the Pen 6021-2 by ryohei (@intotheprogram) on CodePen.

変数に文字列と併せて代入したHTML要素が解釈され、ページに表示されています。

このようにinnerHTMLは、文字列に設定したHTML要素を解釈して出力することができます。ただしの対策として<script>は解釈されませんので、ご注意ください。

最後に

textContentとinnerHTMLは同じくらいの頻度で使用するプロパティです。それぞれの動きを理解しておくことで適切に使用することができるかと思います。何度かご自身の手で使用してみて、使用感を確認してみてくださいね!

以上、JavaScriptで変数の文字列を表示する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク

XSS

Webページに攻撃者のスクリプトを埋め込み、閲覧者のブラウザで実行させる攻撃。Cookieの窃取や画面の改ざんにつながる。

詳しく見る