ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
JavaScript(ジャバスクリプト、JS) は、1995 年に Netscape Communications の Brendan Eich(ブレンダン・アイク)が当時の Netscape Navigator 2.0 向けに開発した動的型付けスクリプト言語です。「10 日間で作られた」逸話で有名で、最初の名称は Mocha → LiveScript → JavaScript と変遷しました。「Java」を冠したのは Sun Microsystems との提携によるマーケティング上の理由で、言語としての Java とは 名前以外ほぼ無関係 です。
言語仕様は ECMAScript(ECMA-262) として ECMA International により標準化されています。1997 年に ES1 が公開され、2015 年の ES2015(通称 ES6) でクラス構文・アロー関数・let/const・テンプレートリテラル・Promise・モジュールなどが導入され、現代的な姿になりました。以降は 毎年 6 月にリリース される年次仕様(ES2016〜ES2025)が続いています。
もともとはブラウザ DOM 操作のための言語でしたが、2009 年に Ryan Dahl が Node.js(Google の V8 JavaScript エンジンを利用したサーバサイド実行環境)を公開してから、サーバサイド・ビルドツール・CLI・デスクトップアプリ(Electron)・モバイル(React Native)まで領域を拡大しました。型システムは 動的・弱型付け で、"5" == 5 が true になるなど暗黙の型変換が多く、これが TypeScript や ESLint などの補助ツールの発達を促した側面もあります。
ファイル種類とビルド成果物
| 拡張子 | 役割 | 備考 |
|---|---|---|
.js | 標準 JavaScript | Node.js では package.json の "type" フィールドで CommonJS / ESM が決まる |
.mjs | ES Modules を強制 | import / export 必須。require は不可 |
.cjs | CommonJS を強制 | require / module.exports。レガシー対応 |
.jsx | React の JSX 構文 | 素の Node.js では実行不可。Babel / esbuild / SWC 等で変換 |
.json | JSON データ | JS のオブジェクトリテラルから派生したデータ交換形式 |
.map | Source Map | ミニファイ後のコードと元コードの対応情報 |
.node | Node.js ネイティブモジュール | C++ で書かれたバイナリアドオン |
「Hello, World」
// hello.mjs — ES Modules 形式
'use strict';
export function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet('World'));
Node.js 14 以降であれば node hello.mjs で実行できます。.js 拡張子のままで ESM を使いたい場合は package.json に "type": "module" を追加します。ブラウザでは <script type="module" src="hello.mjs"></script> として読み込みます。
パッケージ管理・ビルドツール
- npm:Node.js 同梱の標準パッケージマネージャ。npmjs.com レジストリは世界最大規模(200 万パッケージ超)
- yarn:2016 年に Meta(旧 Facebook)が公開。並列インストールで高速化。Plug'n'Play・Berry 系統あり
- pnpm:ハードリンクでディスク容量を大幅節約。モノレポに強い。CI でも採用が増加
- Bun:Zig 製の超高速 JS ランタイム+パッケージマネージャ。
bun installは npm の 10〜30 倍 - Deno:Ryan Dahl が Node.js への反省から作った新ランタイム。TypeScript ネイティブ・URL インポート・セキュア
- ビルドツール:webpack / Rollup / esbuild / Vite / Parcel / Turbopack
- テスト:Jest / Vitest / Mocha / Playwright
関連言語との比較
| 項目 | JavaScript | TypeScript | Python | Ruby |
|---|---|---|---|---|
| 型システム | 動的・弱 | 静的(JS 上の型レイヤ) | 動的・強 | 動的・強 |
| 主な実行環境 | ブラウザ・Node.js・Bun・Deno | tsc でコンパイル→JS | CPython | MRI |
| 標準モジュール | ESM / CJS | ESM 推奨 | import | require |
| 非同期 | Promise / async-await / イベントループ | 同上 | asyncio | Fiber / Async |
| ブラウザ実行 | ネイティブ可 | 不可(要コンパイル) | 不可(WASM 経由) | 不可 |
注意点・落とし穴
==と===:==は型変換あり(0 == ""がtrue)、===は厳密比較。常に===を使う のが現代のベストプラクティス- 巻き上げ(hoisting):
var宣言は関数スコープの先頭に持ち上げられる。let/constはブロックスコープで TDZ あり thisの挙動:呼び出し方でthisが変わる。アロー関数はthisをバインドしない- ESM と CJS の混在:
.mjsからrequireはできない。importは ESM 専用 - 浮動小数の罠:
0.1 + 0.2 === 0.3はfalse(IEEE 754)。金額計算は整数化またはdecimal.js - npm 依存地獄:
node_modulesが肥大化しがち。npm audit/ Dependabot で脆弱性監視
関連リンク
- 派生・密接:TypeScript(.ts / .tsx)
- 親カテゴリ:プログラミング・スクリプト
- 概論:ファイル拡張子とは
- 外部:TC39 / Node.js
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?