JavaScript

スポンサーリンク
JavaScript

JavaScript | ES6+ 文法:新データ構造 – Set による重複排除

Set で重複排除とは何か(まずイメージから)Set は「同じ値を 2 回入れようとしても、1 回分しか持たないコレクション」でしたね。この「同じ値は 1 つだけ」という性質を利用すると、配列に同じ値...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – Map vs Object

まずざっくりイメージ:Map と Object は「役割」が違う同じように「キーと値」を扱えるので、最初は「Map でも Object でもできるじゃん。どっち使えばいいの?」と感じると思います。ざっ...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – WeakSet

WeakSet とは何か(まずイメージから)WeakSet は、「オブジェクトだけを入れられる、弱い参照を持つ Set」 です。普通の Set と似ていますが、決定的に違う点がいくつかあります。1つ目...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – WeakMap

WeakMap とは何か(まずイメージから)WeakMap は、「キーをオブジェクトに限定した、”弱い紐づけ” をするための特別な Map」 です。普通の Map と似ていますが、決定的に違うのはここ...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – Set

Set とは何か(まずイメージから)Set は、ES6 で追加された「重複を許さない値の集まり(コレクション)」 です。配列:同じ値を何回入れてもいいSet:同じ値は 1 回しか入らないというイメージ...
JavaScript

JavaScript | ES6+ 文法:新データ構造 – Map

Map とは何か(まずイメージから)Map は、ES6 で追加された「キーと値のペアを柔軟に保存できる専用のコレクション」 です。似たものに「オブジェクト {}」がありますが、Map には大きな違いが...
JavaScript

JavaScript | ES6+ 文法:モジュール – バンドラとの関係

そもそも「バンドラ」とは何か(まずイメージから)バンドラ(bundler)は、「たくさんの JS ファイル(モジュール)を、ブラウザが読みやすい形にまとめてくれる道具」 です。ES6 の import...
JavaScript

JavaScript | ES6+ 文法:モジュール – モジュール分割設計

モジュール分割設計とは何か(まずイメージから)モジュール分割設計は、「アプリ全体を、意味のある小さな“部品(ファイル)”に分けて、その関係をきれいに整理すること」 です。1ファイル = 1モジュール、...
JavaScript

JavaScript | ES6+ 文法:モジュール – 循環参照の注意

循環参照とは何か(まずイメージから)モジュールの「循環参照(循環依存)」は、モジュール A がモジュール B を import し、同時にモジュール B もモジュール A を import している状...
JavaScript

JavaScript | ES6+ 文法:モジュール – モジュールスコープ

モジュールスコープとは何か(まずイメージから)モジュールスコープは、「そのモジュール(=1ファイル)の中だけで有効な“自分専用の世界”」 のことです。ES6 モジュール(import / export...
JavaScript

JavaScript | ES6+ 文法:モジュール – 動的 import

動的 import とは何か(まずイメージから)ES6 以降のモジュールの import には、「ファイルの先頭で書く静的な import」と「コードの中で呼び出せる動的 import」の2種類があり...
JavaScript

JavaScript | ES6+ 文法:モジュール – import の別名

「import の別名」とは何か(まずイメージから)import の別名 は、「他のファイルから持ってきた名前に、今のファイルで使いやすい別の名前を付け直す」 仕組みです。同じ名前が他でも使われていて...
JavaScript

JavaScript | ES6+ 文法:モジュール – 再エクスポート

再エクスポートとは何か(まずイメージから)再エクスポート(re-export)は、「他のモジュールから import したものを、そのまま(または名前を変えて)もう一度 export し直すこと」 で...
JavaScript

JavaScript | ES6+ 文法:モジュール – default export

default export とは何か(まずイメージから)default export は、「このモジュール(ファイル)の“看板商品”を 1 つだけ外に出す」ための仕組みです。名前付き export:...
JavaScript

JavaScript | ES6+ 文法:モジュール – 名前付き export

名前付き export とは何か(まずイメージから)名前付き export は、「このファイルから、名前を付けて外に公開するものを選ぶ仕組み」です。// math.jsexport const PI ...
JavaScript

JavaScript | ES6+ 文法:モジュール – import / export 基本

モジュールの考え方(まず全体像から)モジュールは、「ファイルごとに役割を分けて、必要なものだけをやり取りする仕組み」です。1ファイル = 1モジュール、と考えておけばOKです。「このファイルから外に出...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:タブ切り替えアプリ(初級編)

1日目のゴールと今日やること1日目のテーマは「タブ切り替えアプリの“いちばん小さな仕組み”を理解する」ことです。タブ切り替えアプリとは、「ボタン(タブ)を押すと、対応する画面だけが表示される」という、...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – クラス設計の考え方

クラス設計の考え方とは何かクラス設計は、「コードをどう書くか」より先に、「このクラスは何者で、何ができて、どこまで面倒を見るのか」を決める作業です。JavaScript の class は、単に「便利...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – getter / setter

getter / setter とは何か(まずイメージから)getter / setter は、「プロパティに見える“入り口・出口”の裏に、処理を仕込むための仕組み」 です。普通のプロパティはこうです...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – プライベートフィールド(#)

プライベートフィールド(#)とは何かプライベートフィールドは、class の中で「クラスの外から絶対に直接触られたくない値」を隠すための仕組みです。書き方は、名前の前に # をつけます。class U...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – 静的メソッド

静的メソッドとは何か(まずイメージから)静的メソッド(static メソッド)は、「インスタンスではなく“クラスそのもの”に属するメソッド」 です。普通のメソッドはこう呼びます。const user ...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – super

super とは何か(まずイメージから)super は、クラスの継承で使う「親クラスへの入り口」です。具体的には次の2つの役割があります。親クラスの constructor を呼ぶ親クラスのメソッドを...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – 継承(extends)

継承(extends)とは何か(まずイメージから)継承(extends)は、「あるクラスをベースにして、それを少しだけ“追加・変更”したクラスを作る仕組み」 です。「動物」という共通部分を持つクラスが...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – メソッド定義

クラスの「メソッド定義」とは何かクラスのメソッドは、「そのクラスから作ったインスタンスができる“動き(振る舞い)”を表す関数」です。class の中に書く関数が、インスタンスから user.greet...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – インスタンス生成

「インスタンス生成」とは何か(まずイメージを掴む)クラスは「設計図」、インスタンスは「その設計図から作られた実物」です。class User { ... } は「ユーザーとはこういう性質・機能を持つ」...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – constructor

constructor とは何か(まずはイメージから)constructor は、class から new したときに「最初に一回だけ」呼ばれる特別なメソッドです。役割はシンプルで、インスタンスが生ま...
JavaScript

JavaScript | ES6+ 文法:クラス構文 – class 構文

class 構文とは何か(まずイメージを掴む)class 構文は、「同じような性質と振る舞いをもつオブジェクトを量産するための設計図を書くための文法」です。「ユーザー」「商品」「敵キャラ」みたいな“種...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:タイマーアプリ(初級編)

1日目のゴールと今日やることこの「JavaScript タイマーアプリ(基礎) 初級編」では、最終的に「スタート」「ストップ」「リセット」ができる、シンプルなタイマーアプリを作ることを目指します。でも...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – オブジェクト操作設計

オブジェクト操作設計とは何か「オブジェクト操作設計」というのは、単に user.name = "Alice" といった「その場しのぎの代入」を書くのではなく、どんな形のオブジェクトにするか(構造・型)...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – Object.getPrototypeOf

Object.getPrototypeOf とは何かObject.getPrototypeOf は、あるオブジェクトの「プロトタイプ(親オブジェクト)」を取り出すためのメソッドです。プロトタイプとは、...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – Object.getOwnPropertyNames

Object.getOwnPropertyNames とは何かObject.getOwnPropertyNames は、オブジェクトが「自分で持っている」すべてのプロパティ名を配列で返すメソッドです。...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – Object.fromEntries

Object.fromEntries とは何かObject.fromEntries は、「配列(や Map)の一覧」からオブジェクトを作り直すためのメソッドです。一言でいうと、Object.entri...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – Object.entries

Object.entries とは何かObject.entries は、オブジェクトの中身を「配列の配列」に変換する ES2017(ES8)のメソッドです。「キーと値のペア」を という2要素配列にし、...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – Object.assign

Object.assign とは何かObject.assign は、複数のオブジェクトを「左から右へ」順番にコピーして、1つのオブジェクトにまとめるための ES6 のメソッドです。一言でいうと、「プロ...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – Object.is

Object.is とは何かObject.is は、「2つの値が“本当に”同じ値かどうか」を判定するための ES6 の比較関数です。見た目は ===(厳密等価演算子)に似ていますが、NaN と +0 ...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – メソッド定義省略

メソッド定義省略とは何かオブジェクトの「メソッド定義省略」は、ES6 から入った“関数っぽいプロパティ”を短く書くための記法です。従来はこう書いていました。const user = { name: "...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – 計算されたプロパティ名

計算されたプロパティ名とは何か「計算されたプロパティ名(computed property name)」は、オブジェクトリテラルのキーを、文字列リテラルではなく「式の結果」から動的に決める書き方です。...
JavaScript

JavaScript | ES6+ 文法:オブジェクト拡張 – プロパティ短縮記法

プロパティ短縮記法とは何かオブジェクトの「プロパティ短縮記法」は、変数名とプロパティ名が同じときに、キー: 値 の 値 を省略できる ES6 の書き方です。ふつうはこう書きます。const name ...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:ランダム表示アプリ(初級編)

1日目のゴールと今日のテーマ1日目のテーマは「ランダムに1つ選んで表示する感覚をつかむ」 ことです。目指すのは、とてもシンプルなランダム表示アプリ。ボタンを押すと「今日の運勢」や「おみくじ結果」がラン...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 旧構文との比較

スプレッド構文と「旧構文」をざっくり比較するとES6 のスプレッド構文 ... は、「配列やオブジェクトの中身をその場でバラして並べる」ための新しい書き方です。旧構文(ES5 まで)は、concat ...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 不変データ作成

「不変データ」とは何か(まずここを押さえる)不変データ(immutable data)とは、「一度作ったデータを書き換えず、変更したいときは新しいデータを作る」という考え方です。ここが重要です:配列....
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 浅いコピーの理解

「浅いコピー」とは何か(まずイメージを掴む)スプレッド構文のコピー( や { ...obj })は「浅いコピー(shallow copy)」です。ここが最重要ポイントです:外側の「箱」(配列そのもの・...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 上書き順序

スプレッド構文の「上書き順序」とは何かスプレッド構文では、... を使って配列・オブジェクトの中身を「左から右へ」順番に展開していきます。ここが最重要ポイントです:オブジェクトの { ...a, .....
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 結合処理

スプレッド構文による「結合処理」とは何かスプレッド構文での結合処理は、... を使って「配列やオブジェクトの中身をバラして並べ直し、新しい配列/オブジェクトを作る」書き方です。ここが重要です:配列なら...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 関数引数展開

関数引数展開とは何かスプレッド構文の「関数引数展開」は、fn(...array) のように書いて「配列(や配列っぽいもの)をバラして、関数の複数の引数として渡す」書き方です。ここが重要です:... が...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – オブジェクトコピー

オブジェクトコピーとスプレッド構文の関係オブジェクトのスプレッド構文は、{ ...obj } のように書いて「オブジェクトの中身(プロパティ)を展開して、新しいオブジェクトを作る」書き方です。ここが重...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 配列コピー

スプレッド構文で「配列コピー」とは何かスプレッド構文を使うと、 のように書いて「配列の中身だけを取り出して、新しい配列を作る」ことができます。ここが重要です:const copy = arr; は“同...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – オブジェクト展開

オブジェクトのスプレッド構文とは何かオブジェクトのスプレッド構文は、{ ...obj } のように書いて「オブジェクトの中身(プロパティ)をその場に展開する」書き方です。イメージとしては、「そのオブジ...
JavaScript

JavaScript | ES6+ 文法:スプレッド構文 – 配列展開

スプレッド構文の「配列展開」とは何かスプレッド構文の配列展開は、...array の形で「配列をバラして、その場に1個ずつ並べる」書き方です。ここが重要です: と書くと「arr の中身だけ」が新しい配...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:簡単 ToDo アプリ(初級編)

1日目のゴールと今日のテーマ1日目のテーマは「配列でタスクを管理して、画面を“描き直しながら”ToDoリストを動かす感覚をつかむこと」です。作るのは、ほんとにシンプルな ToDo アプリです。テキスト...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:入力チェックアプリ(初級編)

1日目のゴールと今日のテーマ1日目のテーマは「“入力された文字がOKかどうか”をプログラムに判断させる感覚をつかむこと」です。ただ文字を受け取るだけじゃなくて、未入力(空)のときに警告を出す。文字が長...
JavaScript

JavaScript | 1 日 90 分 × 7 日アプリ学習:強化版カウンターアプリ(初級編)

1日目のゴールと今日のテーマ1日目のテーマは「シンプルだけど“設計の考え方”が入ったカウンターアプリを作ること」です。ただの「+1ボタン」ではなく、複数ボタンを持つ。ボタンごとに役割を分ける(イベント...
JavaScript

JavaScript | 1 日 60 分 × 7 日アプリ学習:超初級編

1日目のゴールと全体の流れ1日目のテーマは「JavaScriptに触ってみて、“動いた!”を体で感じること」です。理解度は50%で十分。それよりも「自分の手で打ったコードが反応した」という経験を作りた...
JavaScript

JavaScript | ES6+ 文法:分割代入 – 安全な分割

安全な分割とは何か分割代入は「欲しい値だけ」を短く取り出せますが、未定義(undefined)や欠落、深いネスト、null、宣言順の問題で簡単にエラーになります。ここが重要です:安全な分割の基本は「外...
JavaScript

JavaScript | ES6+ 文法:分割代入 – 値の入れ替え

値の入れ替え(スワップ)とは何か分割代入を使うと、2つ以上の変数の値を“一時変数なし”で入れ替えられます。ここが重要です:左側のパターンに「新しい並び」を書き、右側に「古い並び」を配列で渡すだけ。読み...
JavaScript

JavaScript | ES6+ 文法:分割代入 – rest 要素

rest 要素とは何かrest 要素(残余要素)は、分割代入の左側で ...rest のように書き、“取りきれなかった残り全部”を配列やオブジェクトとしてまとめて受ける記法です。ここが重要です:配列な...
JavaScript

JavaScript | ES6+ 文法:分割代入 – 一部要素のスキップ

一部要素のスキップとは何か配列の分割代入では、左側のパターンにカンマだけを書いて「その位置の要素を受け取らない」ことができます。ここが重要です:スキップは“要素の位置”で意味を表すので、読み手が「どこ...
JavaScript

JavaScript | ES6+ 文法:分割代入 – 関数引数での使用

関数引数での分割代入とは何か関数のパラメータ部分で分割代入を使うと、渡された配列・オブジェクトから「必要な値だけ」を直接取り出して、引数の宣言に“意図(何を使うのか、欠けたらどうするのか)”を明示でき...
JavaScript

JavaScript | ES6+ 文法:分割代入 – ネスト分割

ネスト分割とは何かネスト分割(ネストした分割代入)は、オブジェクトや配列の“入れ子構造”から、必要な値だけを階層に沿って取り出す書き方です。ここが重要です:左側のパターン(構造の形)に合わせて、右側の...
JavaScript

JavaScript | ES6+ 文法:分割代入 – 変数名変更

変数名変更(エイリアス)とは何か分割代入の「変数名変更」は、オブジェクトのプロパティ名を“別名の変数”へ取り出す書き方です。ここが重要です:{ prop: alias } の形で「右側のオブジェクトの...
スポンサーリンク