JavaScriptの特徴は?実行場所・実行方式・Javaとの関係
ITパスポート試験 令和6年度 問88 / アルゴリズムとプログラミング › プログラム言語
過去問にチャレンジ
JavaScriptに関する記述として,適切なものはどれか。
- ア
Webブラウザ上に,動的な振る舞いなどを組み込むことができる。
- イ
Webブラウザではなく,Webサーバ上だけで動作する。
- ウ
実行するためには,あらかじめコンパイルする必要がある。
- エ
名前のとおり,Javaのスクリプト版である。
会話形式の解説
講師今回はJavaScriptの特徴を問う問題です。押さえる観点は3つあります。どこで動くのか、どう実行されるのか、Javaとはどんな関係なのか。この3つで選択肢を見ていきましょう。
受験者Webページを動かす言語というイメージがあるので、ブラウザ上で動的な振る舞いを組み込めるという選択肢が正しそうに思います。ただ、名前にJavaと入っているので、Javaのスクリプト版という説明にも迷いました。
講師最初のイメージで合っています。JavaScriptは主にWebブラウザ上で動いて、ボタン操作に反応したり、表示を更新したり、入力内容を確認したりする処理を受け持ちます。Webページに「動き」を与える言語だと覚えておくとよいです。これが正解です。
受験者では、Javaとの関係はどうなっているのでしょうか。名前が似ているので、親戚のような言語だと思っていました。
講師そこが引っかけです。JavaとJavaScriptは名前が似ているだけで、別々の言語です。設計の考え方も、主な用途も、実行のしかたも異なります。「名前のとおり」という言い回しは、名前から連想させて誤らせるためのものだと考えてください。
受験者Webサーバ上だけで動くという選択肢も気になりました。サーバでJavaScriptを使う話を聞いたことがあるからです。
講師よく気づきました。Node.jsという実行環境を使えば、サーバ側でもJavaScriptを動かせます。ただ、もともとはWebブラウザ上で動く言語として広く使われてきました。誤りなのは「サーバ上だけ」と限定している点です。「だけ」のように言い切る表現には注意しましょう。
受験者あらかじめコンパイルが必要という選択肢はどうでしょうか。コンパイルは、プログラムを実行できる形にまとめて変換しておくことだと理解しています。
講師その理解で大丈夫です。JavaScriptはインタプリタ方式の言語です。インタプリタ方式とは、書いたプログラムを実行環境がその場で解釈しながら実行するやり方です。そのため、事前にコンパイルしておく手順は要りません。
受験者整理すると、主にブラウザで動く、ただしサーバで動かすこともできる、事前のコンパイルは不要、Javaとは別の言語、ということですね。
講師そのとおりです。補足すると、Webページは「HTMLが構造、CSSが見た目、JavaScriptが動作」を受け持つと整理すると覚えやすくなります。また、JavaScriptの言語仕様はECMAScriptという名前で標準化されています。
受験者最近のJavaScriptは処理が速いと聞きます。中でコンパイルのようなことをしているのではありませんか。
講師鋭い質問です。最近のJavaScriptエンジンは、速く動かすために実行中に内部でコンパイルを行うことがあります。これをJITコンパイルといいます。ただ、これはエンジン内部の仕組みであり、利用者が事前にコンパイルしなくてよいことは変わりません。試験では「事前コンパイルは不要」と押さえておけば十分です。
まとめ
JavaScriptは、主にWebブラウザ上でWebページに動的な振る舞いを加えるためのプログラミング言語です。Node.jsなどの実行環境を使えばサーバ側でも動かせるため、「サーバ上だけ」とする説明は誤りです。インタプリタ方式なので事前のコンパイルは要りません。また、Javaとは名前が似ているだけで別の言語です。Webページは、HTMLが構造、CSSが見た目、JavaScriptが動作を受け持つと整理すると覚えやすくなります。
解答・解説
正解はアです
この問題のテーマ
JavaScriptの特徴、とくにどこで動くのか(実行環境)、どのように実行されるのか(実行方式)、Javaとはどういう関係なのかを正しく理解しているかを問う問題です。
解き方の考え方
JavaScriptについて押さえる観点は3つあります。主に「Webブラウザ上」で動いて画面に動きを付けること、事前のコンパイルが要らないこと、Javaとは別の言語であることです。各選択肢がこのどれに当たるかを考えると、イ・ウ・エの誤りが分かります。イは「だけで」、エは「名前のとおり」のように、言い切る表現や名前から連想させる表現に注意すると判断しやすくなります。
選択肢ごとの解説
- ○ア Webブラウザ上に,動的な振る舞いなどを組み込むことができる。Webブラウザ上に動的な振る舞いを組み込めるという説明は正しく、これが正解です。JavaScriptはボタン操作に反応したり、表示を更新したり、入力内容を確認したりする処理を受け持ちます。Webページに「動き」を与える言語だと覚えておくとよいでしょう。
- ×イ Webブラウザではなく,Webサーバ上だけで動作する。Webサーバ上だけで動くという説明は誤りです。JavaScriptはもともとWebブラウザ上で動く言語として広く使われています。Node.jsのような実行環境を使えばサーバ側でも動きますが、「サーバ上だけ」と限っている点が誤りです。
- ×ウ 実行するためには,あらかじめコンパイルする必要がある。あらかじめコンパイルする必要があるという説明は誤りです。JavaScriptはインタプリタ方式の言語で、書いたプログラムを実行環境がその場で解釈して実行します。事前にコンパイルしておく手順は要りません。
- ×エ 名前のとおり,Javaのスクリプト版である。Javaのスクリプト版だという説明は誤りです。JavaとJavaScriptは名前が似ているだけで、別々の言語です。設計の考え方も、主な用途も、実行のしかたも異なります。
補足
JavaScriptの言語仕様は、ECMAScriptという名前で標準化されています。なお、最近のJavaScriptエンジンは処理を速くするため、実行中に内部でコンパイル(JITコンパイル)を行うことがあります。ただしこれはエンジンの内部の仕組みであり、利用者が事前にコンパイルする必要がないことに変わりはありません。試験では「事前コンパイルが不要」と押さえておけば十分です。
POINT
- JavaScriptは、主にWebブラウザ上でWebページに動的な振る舞いを加えるためのプログラミング言語です。
- Node.jsなどの実行環境を使えば、Webサーバ側でもJavaScriptを動かせます。
- JavaScriptはインタプリタ方式で、事前のコンパイルは必要ありません。
- JavaとJavaScriptは名前が似ているだけで、別の言語です。
- Webページは、HTMLが構造、CSSが見た目、JavaScriptが動作を受け持つと整理すると覚えやすくなります。
