JavaScript
Web ブラウザで動作する言語として生まれ、今やサーバーやアプリ開発まで担う汎用言語
JavaScript とは
JavaScript は、もともと Web ブラウザ上で動作させるために 1995 年に生まれたプログラミング言語だ。当初はページに簡単な動きを加える補助的な役割だったが、現在ではフロントエンド・サーバーサイド (Node.js)・モバイルアプリ・デスクトップアプリまでをカバーする汎用言語へと発展している。
特徴
JavaScript は動的型付けのインタプリタ言語で、変数に型宣言が不要だ。関数を値として扱える第一級関数や、非同期処理を扱うイベントループといった仕組みを持ち、特に I/O 待ちの多い Web 処理と相性がよい。言語仕様は Ecma International が ECMA-262 (ECMAScript) として標準化しており、2026 年 8 月時点の最新版は 2026 年 6 月の第 17 版だ。第 6 版 (2015 年 6 月) 以降は毎年 6 月に新しい版を出す周期で運用され、策定中の仕様も Ecma International の技術委員会 TC39 が草案として常時公開している。つまり「新しい JavaScript」は年単位で動く前提で、ある機能が使えるかどうかは仕様の版ではなく実行環境 (ブラウザや Node.js) の対応状況で確かめることになる。
TypeScript との関係
| 観点 | JavaScript | TypeScript |
|---|---|---|
| 型 | 動的 (実行時に判定) | 静的 (コンパイル時に検査) |
| 学習コスト | 低い | やや高い |
| 大規模開発 | 型がなく崩れやすい | 型で安全性を担保 |
| 実行 | そのまま動く | 型を取り除いてから動かす |
TypeScript は JavaScript の構文をそのまま含むスーパーセットで、既存の JavaScript コードは基本的に手を加えずに TypeScript として扱える。逆は成り立たず、型注釈を含むコードは型を取り除かないと動かない。取り除き方は 2 通りある。コンパイラで JavaScript へ変換するか、実行時に型注釈を捨てて走らせるかだ。後者は Node.js が備えており、消去可能な型構文だけで書かれたファイルなら型注釈を空白へ置き換えて実行する (v25.2.0 と v24.12.0 で安定版扱いになった)。ただしこの経路では型検査そのものが行われない。型の安全性は変換や検査の工程を通して初めて得られるもので、拡張子を .ts にした時点で付いてくるわけではない。
実務での注意点
ブラウザによる挙動の差は標準化が進んで縮小したが、非同期処理の扱いは今も誤りが起きやすい。コールバックの入れ子 (コールバック地獄) は Promise や async/await で解消できるが、エラーハンドリングを怠ると失敗が握りつぶされる。また null と undefined、緩い等価比較 (==) など、独特の落とし穴を理解しておくことがバグ予防につながる。
== の危うさは「型が違えば変換される」で終わらない。手元で動かすと次のようになる。
console.log(0 == ''); // true
console.log(0 == '0'); // true
console.log('' == '0'); // false
前の 2 行が true なのに 3 行目は false になる。== は「A と B が等しく B と C が等しければ A と C も等しい」という推移性を満たさないということで、条件分岐を組み替えたときに思わぬ場所で顔を出す。既定は === にして、== は意図がある箇所だけに限るのが安全側だ。
null と undefined の違いも実務に効く。既定値つきの引数は undefined を渡したときだけ既定値が使われ、null を渡せば null がそのまま入る。JSON.stringify は値が undefined のキーを出力から落とし、null のキーは残す。「未設定」をどちらで表すかは、API の入出力を跨ぐ場面では先に決めておかないと、片側で消えて片側で残るという食い違いになる。
学ぶ順としては、文法を一通り追うより先に非同期処理を 1 つ書いて動かすほうが早い。データを取得し、失敗する場合を捕まえ、await を付け忘れたときに何が起きるかまで手元で確かめておくと、実務で出会うバグの多くがその延長線上にあると分かる。
この記事は役に立ちましたか?
関連用語
関連する記事
JavaScript / TypeScript 本ガイド - 入門から型で守る実務コードまで
JavaScript と TypeScript を 1 本の学習ルートとして捉えた技術書の選び方。JavaScript の入門書、言語の背骨を通す体系書、TypeScript の型システムを設計の武器にする本、React/Next.js の実践書まで 2026 年 8 月時点の定番で案内します。
Web 開発本ガイド - フロントエンドからバックエンドまで
Web 開発の全体像を学べる技術書の選び方と学習マップを紹介。フレームワーク本の賞味期限問題と公式ドキュメントとの使い分けも解説します。
体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版は初版と何が違うか - 買い直し判断ガイド
通称「徳丸本」こと体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版 (2018 年) と初版 (2011 年) の違いを出版社公表の改訂内容から整理。章の削除 / 新設 / 追加点の一覧と、初版所有者が買い直すべきかの判断基準を解説します。