Menu
CoddyTech
学習パス

JavaScriptのデータ構造とアルゴリズム

JavaScriptにあるのはArray、Map、Setで、キューもヒープも連結リストも木もありません。だから面接ではそれらを作るよう求められます。このパスでは、そのひとつひとつをJavaScriptで書き、それを使ってソート、再帰、グラフ探索を行い、最後は採点付きの面接問題で締めくくります。無料、ブラウザ完結、ほとんどのコースに修了証が付きます。

377 レッスン284 チャレンジ702 クイズの問題

  • 初心者向け
  • sparkles iconAIによるコーディングサポート
  • hint icon実践的なインタラクティブレッスン
  • volume On icon全レッスンに音声ナレーション付き
  • quiz icon知識を確かめるクイズ
  • certificate iconパス全体で23枚の無料修了証

JavaScriptのDSA、ステップごとに

38 コース377 レッスン284 チャレンジ702 クイズの問題

各ステップは、すでにあるCoddyのコースの組み合わせで、どの「開始」ボタンもコースをJavaScriptで開きます。まだJavaScriptで教えていない3つのコースは、ステップのあとに載せています。

  1. 1
    このステップを始める開始スタック、キュー、二分木、ハッシュテーブル、連結リスト。それぞれをJavaScriptでゼロから実装し、実際に問題を解くのに使います。これを終えると、配列がスタックとして優秀なのはどんなときか、キューとして不向きなのはどんなときか、そしてMapが何をしてくれているかがわかります。開始
  2. 2
    このステップを始める開始双方向連結リスト、ヒープと優先度付きキュー、トライ木、グラフ、そして自己平衡するAVL木。JavaScriptに備わっていない構造を、手で書きます。ここで書くヒープは、グラフのステップで手に取ることになるものです。開始
  3. 3
    このステップを始める開始バブル、選択、挿入、マージ、クイック、ヒープ、計数、基数ソートを、JavaScriptで書き、可視化ツールで眺めます。組み込みのsort()はES2019以降、安定であることが求められており、V8はそれをTimsortで実装しています。このステップを終えれば、その両方の意味がわかります。開始
  4. 4
    このステップを始める開始JavaScriptで再帰のチャレンジ問題。動的計画法(Pythonで解説)とビット演算(C++で解説)はステップのあとに載せています。漸化式はどの言語で読んでも同じで、JavaScriptにも同じビット演算子があり、32ビット整数に適用されます。開始専用ページ
  5. 5
  6. 6
使える機能
コーディングを学ぶために使うすべて

実践で学ぶ

実際のコードを書き、データベースをクエリし、ウェブサイトを構築し、AIプロンプトをマスターしましょう。インタラクティブなレッスンで現代の開発者に必要なすべてのスキルを網羅しています。

playground.js
コードエディタ
1const greeting = "Hello, Coddy!"
2function sayHi(name) {
3    return greeting + " " + name
4}
5
bottombar Collapse icon
テスト #1test Case Success icon
テスト #2test Case Success icon
テスト #3test Case Failure icon
入力
"Alex"
出力
"Hello, Coddy! Alex"

連続記録を築こう

継続して進捗を見守りましょう!毎日のコーディング習慣を追跡し、フリーズ日で連続記録を守り、毎日参加することで報酬を獲得しましょう。

12 日連続

明日も戻ってきて連続記録を維持しましょう!

fire Filled icon
left icon

January 2026

right icon

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

21

22

23

24

25

26

27

28

29

30

product Double Or Nothing icon

ダブル・オア・ナッシング

7日中5日目

fire Freeze icon

連続記録フリーズ

2 left

どこでも学べる

コーディングの旅を持ち歩こう!セットアップ不要、ダウンロード不要 - 開いてすぐにコーディング開始。iOS、Android、Webで4.9星評価で利用可能。

Python
7ストリーク
250スコア
5エネルギー
変数
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Right Done icon
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Left Done icon
journey Hex Active Base iconjourney Hex Active Shadow iconjourney Hex Active Top iconjourney Lesson Theory Challenge icon
続ける
journey Path Right icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson Theory Challenge icon
journey Path Left icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson All icon
ジャーニー
目標
リーダーボード
プロフィール
4.9
星星星星星
評価

あなたは一人じゃない

グローバルリーダーボードで競い、友達を招待して報酬を獲得し、お互いの成功を祝いましょう。プログラミングは友達と一緒の方が楽しい!

チャレンジャーリーグ
チャレンジャーリーグ上位7名が昇格
leaderboard First icon1
avatar 1 icon
fire Filled icon
Alex7+ Days
2840
leaderboard Second icon2
avatar 2 icon
fire Filled icon
Jordan7+ Days
2650
leaderboard Third icon3
avatar 3 icon
fire Filled icon
Sam7+ Days
2420
4
avatar 4 icon
Casey
2180
5
avatar placeholder icon
fire Filled icon
Morgan7+ Days
1950
leaderboard Arrow Up icon昇格ゾーンleaderboard Arrow Up icon

あらゆる学び方に対応

読む・聴く・自分を試す・AIに聞く・学んだことを調べる。どんな学び方にも対応したレッスンです。

変数の入門
音声

変数は、後でプログラム内で参照できる値を格納する、名前のついた入れ物です。

Pythonでは、名前、イコール記号、格納したい値の順で書くことで作成します。

値は後から変えられます。再代入すると、名前は新しい値を指すようになります。

1xSarah

修了証を取得

完了したすべてのコースで証明書を獲得しましょう。LinkedInプロフィールや履歴書に追加して、雇用主にプログラミングスキルをアピールしましょう。

Coddy修了証明書
これは以下を証明します山田 太郎が正常に完了しました
python iconPythonの基礎
認証済み
日付2026年1月
LinkedInLinkedInに追加

JavaScriptのDSAをCoddyで学ぶ理由

  • JavaScriptにない構造を。ヒープ、優先度付きキュー、連結リスト、木は組み込まれていないので、それらの実装はJavaScript面接の定番です。このパスではそのすべてを自分で書き、グラフと面接のコースで使います。
  • Web開発者のための面接対策。規模の大きな企業のフロントエンドやフルスタックの選考にはアルゴリズムの面接が含まれ、フロントエンドの候補者はたいていJavaScriptで受けます。DOMは木で、コンポーネントの階層も木なので、同じ走査がUIの質問にも出てきます。
  • パスのほぼすべてをJavaScriptで。データ構造、ソート、グラフアルゴリズム、再帰のチャレンジ、面接パックは、すべてJavaScriptで教えています。そうでない3つ、つまり動的計画法とPython面接シリーズ(Python)、そしてビット演算(C++)は、それぞれの言語とともにステップのあとに載せています。
  • 面接と同じ形で採点。どのレッスンもテストケースで確認されるJavaScriptのチャレンジで終わり、失敗したときはBugsyがあなたのコードを読み、答えを教えずに修正の方向へ導きます。ほとんどのコースで無料の修了証が発行され、それぞれ専用URLで検証できます。

JavaScriptでのDSA学習についてよくある質問

JavaScriptはデータ構造とアルゴリズムの学習に向いていますか?

はい。とくにフロントエンドやフルスタックの職種を目指すなら、面接で使うのがこの言語です。早めに知っておきたい癖が3つあります。組み込みのヒープやキューがないこと、比較関数を渡さないとsort()が文字列として比較すること、そしてすべての数値が64ビット浮動小数点数なので、2^53を超える整数にはBigIntが必要なことです。

JavaScriptに組み込みのヒープや優先度付きキューはありますか?

ありません。あるのはArray、Map、Setとそれぞれの弱参照版だけです。面接では、30行ほどの小さな二分ヒープを書くか、ヒープを使うと述べてそのコストを説明するかのどちらかです。いずれにしても、一度は書いたことがある必要があります。それをするのが、このパスのステップ2です。

なぜ[10, 9, 1].sort()は[1, 10, 9]を返すのですか?

比較関数がないと、Array.prototype.sortは要素を文字列に変換してUTF-16の順序で比較し、'10'は'9'より前に来るからです。数値はnums.sort((a, b) => a - b)でソートします。JavaScriptでソートのコードを書き始めた人の多くが、最初に出会うバグです。

フロントエンドの面接でも、データ構造とアルゴリズムは問われますか?

多くの大企業では問われます。たいていはUIやシステム設計の面接と並んで、配列、ハッシュマップ、木、グラフ走査を扱う面接が1〜2回、JavaScriptで行われます。小規模な企業は実務的な課題に重きを置く傾向があります。いずれにしても、Mapの検索は定数時間で、2つのリストに対する二重ループはそうではないと知っていることが、動くだけの答えと速い答えを分けます。

このパスで、JavaScriptで教えていないコースはどれですか?

3つです。動的計画法とPython面接シリーズはPythonで、ビット演算はC++で教えています。これらはステップのあとに載せていて、それぞれのリンクはコースをその言語で開きます。JavaScriptにも同じビット演算子と>>>がありますが、32ビット整数に対して適用されます。テクニックを移植するときは、そのことを覚えておきましょう。

このパスを始める前に、JavaScriptを知っている必要がありますか?

少なくとも、関数、配列、オブジェクト、クラスは必要です。初めて見るものがあれば、まずCoddyのJavaScriptコースが無料でそれらを扱います。このパスは、そのコースが終わるところから始まります。

他の学習パス

同じコースを別の職種向けに並べたものです。進捗は引き継がれ、あるパスで修了したコースは、それを含むすべてのパスで修了扱いになります。

すべての学習パス
Coddyのプログラミング言語のイラスト

データ構造とアルゴリズムパスを無料で始める

学習を始める