JavaScriptはWebブラウザに搭載された、ブラウザ自身やWebページの表示を操作するための言語です。「ブラウザ本体を操作する」「Webページを操作する」とはどういうことなのでしょうか? 具体例を挙げながら説明します。
※本稿は、SBクリエイティブ発行の書籍『これからのJavaScriptの教科書(2024年6月10日発行)』の中から、アイティメディアが出版社の許可を得て一部編集の上、転載したものです。
JavaScriptはWebブラウザに搭載された、ブラウザ自身やWebページの表示を操作するための言語として1995年に登場しました。それから30年が経ち、いまではPC上で自動化処理をするためにも使われたり、デスクトップアプリの開発にも使われたりと、活躍の範囲を広げています。
JavaScriptは、Webブラウザに搭載された、ブラウザ本体を操作する、またはWebページを操作するために生まれたプログラミング言語です。現在ではNode.jsという、ブラウザではなくPC上で動作するJavaScript実行環境もありますが、基本的にはブラウザ本体や表示されているWebページを操作するための言語と考えてよいでしょう。
JavaScriptでできることを見てみましょう。「ブラウザ本体を操作する」というのは、ブラウザウィンドウや閲覧履歴などにアクセス・制御することです。例えば、いま開いているウィンドウサイズを調べたり、アラートダイアログを出したりすることができます。
それでは「Webページを操作する」とはどういうことなのでしょう? JavaScriptはブラウザに表示されているページのHTMLを操作して、書き換えることができます。しかも、JavaScriptからHTMLを操作して書き換えると、ブラウザの再読み込みをしなくてもその場でページの表示が変わります。どうやってWebページの表示を変化させるのか、もう少し具体的に見ていきましょう。
WebページのHTMLにはたいていの場合、複数の要素が含まれています。要素とは、タグと、タグに囲まれ実際にページに表示されるテキストなどのコンテンツをひとまとめにしたものを指します。次図でHTMLの要素と各部の名称を確認しておきましょう。
JavaScriptによって、プログラミングで要素のコンテンツや属性を書き換えることができます。また、要素を指定した場所に挿入したり、すでにある要素を削除したりすることもできます。
こうした操作をすることで、実際には何ができるのでしょう? 具体例を見てみます。
要素のコンテンツを書き換えると、ページに表示されるテキストを変えることができます。それにより、例えば、通販サイトの商品ページでよく見かけるような、数量を入力するとその場で合計金額を計算して表示させる機能を実現できます。
属性の値を書き換えると、ページの表示を大きく変えることができます。例えばclass属性の値を書き換えれば、その要素に適用されるCSSを切り替えられます。スマートフォンサイトでよく見かけるハンバーガーメニューは、JavaScriptで要素のclass属性の値を書き換えて、適用されるCSSを切り替える方法で実現できます。
要素の挿入・削除ができると、ページにコンテンツを追加したり、表示されているコンテンツの一部を入れ替えたりできます。例えばブラウザのスクロールに従ってコンテンツを追加することもできるので、SNSのような無限スクロールの動作も実現できます。
ここまで見てきたHTMLを操作するテクニックはDOM操作と呼ばれています。DOM操作はWebページにコンテンツを追加したり、すでに表示されているものを書き換えたり、プログラムを実行して、その結果を画面に“出力する”操作の1つです。
ブラウザで動作するJavaScriptには、結果を出力できる場所が大きく分けて3カ所あります。
ここまで、JavaScriptでHTMLを書き換えることができ、それによってWebページの表示が再読み込みせずに瞬時に変わること、HTMLの書き換えはプログラムを実行した結果を“出力”する操作であることを見てきました。
紹介した例のうち、数量を入力すると合計金額を表示する機能を実現するには、商品単価と数量を掛けて合計金額を算出する処理が必要になるはずです。コンテンツをページに表示するためには、事前にデータ(商品単価、数量、ログイン名など)をさまざまに処理・加工する必要が出てきます。
こうした処理は全てJavaScriptプログラムで行います。JavaScriptにはそのための機能がたくさん用意されていて、それらの機能を組み合わせてたくさんの処理を実現します。JavaScriptで行う処理や加工を全て挙げたらキリがありませんが、代表的なものをいくつか挙げておきます。
JavaScriptでプログラムを作る大きな目的は、最終的にHTMLを書き換えるなどの“出力”をすることであり、何かを出力するためにはその前に、出力するためのコンテンツなどを処理・加工する必要があることを見てきました。ここでもう一度、数量を変えたら合計金額を再計算するプログラムを考えてみましょう。再計算をするためのプロセスは次図のような流れになるでしょうか。
この処理を実現するためには、そもそも、処理する元になるデータとして商品の価格と数量が必要です。こうした処理・加工のための原材料になるようなデータを“入力”といいます。多くのプログラムはデータの入力があり、そのデータを処理・加工して、その結果を出力する、という流れで進行します。
プログラミングをする際は、最終的にほしい結果=出力から逆算して、どんな処理をすれば結果が得られるのか、そのためにはどんな元データが必要かを考えながら進めることになります。
これからのJavaScriptの教科書
狩野祐東 著
SBクリエイティブ 3,520円
Copyright © ITmedia, Inc. All Rights Reserved.