← 用語集一覧へ戻る

JavaScript

JavaScript
Webブラウザ上やサーバー上で動作するプログラミング言語のこと。Webページに動きをつけたり、APIと通信したり、Node.jsを使ったサーバー処理にも使われる。
JavaScript (JavaScript)

概要(サマリー)

JavaScriptとは、Webブラウザ上やサーバー上で動作するプログラミング言語のことである。HTMLがページの骨格を、CSSがデザインを担うのに対し、JavaScriptはページに「動き」や「インタラクション」を加える役割を担う。ボタンをクリックしたら何かが起きる、フォームの入力をリアルタイムで検証する、APIからデータを取得して画面に表示する、といった処理はすべてJavaScriptで実現されている。現在はNode.jsを通じてサーバーサイドでも動作し、フロントエンドバックエンドを同じ言語で書けることから、AIコーディング時代に最も需要の高い言語のひとつだ。

詳細解説

JavaScriptでできること

JavaScriptの用途は非常に広い。

  • Webページの動的操作: ボタンクリックで要素を表示/非表示にする、テキストを書き換えるなど
  • API通信: fetchを使ってサーバーからデータを取得・送信する
  • フォームバリデーション: 入力内容をリアルタイムで検証する
  • アニメーション: CSSと連携してスムーズな動きを実現する
  • サーバーサイド(Node.js): APIサーバーやバックエンド処理の構築

DOMの操作

ブラウザがHTMLを読み込むと、「DOM(Document Object Model)」というツリー構造のデータを作る。JavaScriptはこのDOMを操作することで、HTMLの内容をリアルタイムに変更できる。

// 要素を取得して内容を変更する
const title = document.getElementById('title');
title.textContent = '変更後のタイトル';

// クラスを付け外しする
const btn = document.querySelector('.btn');
btn.classList.add('active');

// 新しい要素を作って追加する
const newItem = document.createElement('li');
newItem.textContent = '新しいアイテム';
document.querySelector('ul').appendChild(newItem);

イベントとイベントリスナー

JavaScriptは「何かが起きたとき(イベント)に処理を実行する」という書き方が基本だ。クリック・キー入力・ページ読み込み完了などがイベントにあたる。

const btn = document.getElementById('btn');

// ボタンをクリックしたときに実行される
btn.addEventListener('click', function() {
  alert('クリックされました!');
});

// フォームが送信されたときに実行される
document.querySelector('form').addEventListener('submit', function(event) {
  event.preventDefault(); // ページリロードを止める
  console.log('フォームが送信されました');
});

変数とスコープ

JavaScriptには変数のスコープ(有効範囲)の概念がある。constlet はブロックスコープ({} 内のみ有効)を持つ。var は古い書き方で関数スコープを持つため、現代の開発では原則 constlet を使う。

const name = '田中';      // 再代入不可
let score = 0;            // 再代入可能

if (true) {
  const blockVar = 'ここだけ有効';
  console.log(blockVar); // 使える
}
console.log(blockVar);   // エラー!スコープ外

非同期処理(Promiseとasync/await)

JavaScriptはAPIからデータを取得するなど、時間のかかる処理を「非同期」で扱う。処理が完了するまで待ちつつ、他の処理も止めない仕組みだ。

// 昔ながらの書き方(.then チェーン)
fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

// 現代の書き方(async/await)
async function getData() {
  try {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}

async/await はPromiseをより読みやすく書ける構文だ。実際には同じ仕組みで動いている。

TypeScriptとの関係

JavaScriptに型の概念を追加したのがTypeScriptだ。TypeScriptはJavaScriptに変換して動作するため、最終的に実行されるのはJavaScriptである。大規模な開発ではTypeScriptが選ばれる傾向にあるが、まずはJavaScriptをしっかり理解することが先決だ。

AIコーディングとJavaScriptの関係

AIはJavaScriptのコード生成を最も得意とする言語のひとつだ。「ボタンをクリックしたらモーダルを表示して」「入力値が空だったらエラーメッセージを出して」といった自然言語の指示から、動作するコードを生成してもらえる。ただし、AIが生成するコードには古い書き方(var.then 多用)が混じることがあるため、const/letasync/await を使うよう指示に明示するとよい。

よくある勘違い

JavaScriptはJavaと同じもの?

まったく異なる。JavaScriptとJavaは名前が似ているだけで、開発した会社も文法も用途も大きく違う。Javaはサーバーや企業システムで使われることが多く、JavaScriptはWeb特化で生まれた言語だ。混同を避けるため、省略する場合は「JS」と呼ぶことが多い。

JavaScriptとTypeScriptはどちらを先に学ぶべき?

まずJavaScriptを学ぶことを推奨する。TypeScriptはJavaScriptの上に型機能を追加したものであり、JavaScriptの理解なしにTypeScriptを使いこなすのは難しい。TypeScriptのエラーメッセージもJavaScriptの知識があって初めて意味が分かる。

JavaScriptはブラウザでしか使えない?

そうではない。Node.jsを使えばサーバーサイドでもJavaScriptを実行できる。APIサーバーの構築、ファイル操作、自動化スクリプトなどにも使われている。フロントエンドとバックエンドを同じ言語で書けるため、小規模な開発では効率が上がる。

const で宣言したオブジェクトは変更できない?

完全には変更できないわけではない。const は「再代入できない」という意味だが、オブジェクト配列の中身(プロパティや要素)は変更できる。「変数が指す先を変えられない」というイメージが正確だ。

より詳しくAIに聞いてみよう

  • JavaScriptとは何か、プログラミング未経験者でもわかるように説明してください。
  • JavaScriptのDOM操作の基本を、具体的なコード例つきで教えてください。
  • JavaScriptの非同期処理(Promise・async/await)を初心者向けに整理してください。
  • JavaScriptとTypeScriptの違いと、どちらを選ぶべき場面を教えてください。
  • AIコーディングでJavaScriptを使ったWebアプリを作るとき、まず覚えるべき基礎を教えてください。