JavaScriptとは – JavaScriptの概要

目次

JavaScriptの概要

JavaScriptは、Webブラウザで動作するプログラミング言語で、HTMLやCSSと組み合わせて使われます。
ユーザーの操作に応じてページ内容を動的に変えたり、アニメーションや入力チェックを行えます。
近年はNode.jsなどにより、サーバーサイドやアプリ開発など幅広い分野でも利用されています。

JavaScriptの特徴

特に5つ挙げるとすれば

Webブラウザで直接動作する 特別なソフトをインストールしなくても、ほとんどのブラウザ(Chrome, Edge, Firefox, Safari など)で動作します。
動的でインタラクティブなページを作れる HTMLやCSSと組み合わせて、ユーザーの操作に応じて内容を変えたり、アニメーションをつけたりできます。
インタープリタ型で即実行可能 コンパイルが不要で、ブラウザがそのままJavaScriptを解釈して実行します。修正したらすぐ反映できるのが強みです。
オブジェクト指向・関数型の両方をサポート クラスやオブジェクトを使ったオブジェクト指向もでき、関数を中心に書く関数型のスタイルでも使えます。柔軟性が高い言語です。
利用範囲が広い もともとはWebページ用でしたが、今ではNode.jsを使ってサーバーサイド開発、スマホアプリ、デスクトップアプリ、ゲーム開発などにも利用できます。

JavaScriptの仕様は誰が決定するのか

Ecma Internationalという国際的な団体によってECMAScriptとして標準化されます。
メンバーにはGoogleやMicrosoft他入っています。
https://www.ecma-international.org/
https://www.ecma-international.org/about-ecma/members/

JavaScriptの動作の仕組み

画面に表示されるまでの流れ

1 HTML/CSS読み込み → DOM/CSSOM構築
2 JavaScriptエンジンがコードを実行
3 イベントループで非同期処理を制御
4 レンダリングエンジンが変更を描画
5 ユーザーに表示(インタラクティブな画面)

JavaScriptエンジンとは

説明 JavaScriptのコードを解釈・実行する仕組み
V8(Google Chrome, Node.js)
SpiderMonkey(Firefox)
JavaScriptCore(Safari)
主な役割 JavaScriptをコンピュータが理解できる命令に変換する
処理を実行する(計算、DOM操作、イベント処理など)

レンダリングエンジンとはとは

説明 HTML, CSS, JavaScriptから画面に表示されるページを描画する仕組み
Blink(Chrome, Edge)
Gecko(Firefox)
WebKit(Safari)
主な役割 HTMLを解析してDOMツリーを作成
CSSを解析してスタイルを適用
レイアウトを計算して、ピクセル単位で画面に描画

JavaScriptのサンプルコード

Javaのサンプルコードです。実行すると「hello world」と表示されます。

<script>
  alert("hello world");
</script>

alert命令で文字列を表示します。

JavaScriptでよく使われるライブラリ

名前 種類 主な用途・特徴
jQuery DOM操作・イベント処理 簡単な記述でDOM操作やAjax通信を実現。古いブラウザ対応に強い
D3.js データ可視化 データをSVGやCanvasでグラフ・図表として表現
Chart.js データ可視化 手軽に円グラフ・棒グラフ・折れ線グラフを描画
Three.js 3D描画 WebGLを簡単に扱い、3Dコンテンツやゲームを作成
Lodash ユーティリティ 配列・オブジェクト操作の便利関数を多数提供
Axios 通信 HTTPリクエストをシンプルに実行できる

JavaScriptでよく使われるフレームワーク

名前 種類 主な用途・特徴
React UIライブラリ寄り コンポーネント指向で大規模開発に強い(Facebook製)
Vue.js フロントエンドFW シンプルで学習しやすく、日本でも人気
Angular フロントエンドFW 大規模開発向け、Google製。TypeScript前提
Next.js ReactベースFW サーバーサイドレンダリング(SSR)、静的サイト生成(SSG)に対応
Nuxt.js VueベースFW Next.jsのVue版。SSRやSSGに強い
Express.js サーバーサイドFW Node.jsで動く軽量なWebアプリ開発フレームワーク
NestJS サーバーサイドFW TypeScriptで構築された構造的なサーバーサイドFW

関連の記事

Javaとは – Javaの概要

△上に戻る