Show tasks
JavaScript 言語
導入
JavaScript 入門
マニュアルと仕様
コードエディタ
開発者コンソール
JavaScript の基礎
Hello, world!
alert を表示しましょう
外部スクリプトで alert を表示しましょう
コード構造
モダンなモード, "use strict"
変数
変数の操作
正しい名前を与える
大文字の const?
データ型
文字列の引用符
インタラクション: alert, prompt, confirm
シンプルなページ
型変換
演算子
プレフィックス(接頭辞)とサフィックス(接尾辞)の形式
代入の結果
型変換
足し算を修正する
比較
比較
条件分岐: if, '?'
if (ゼロの文字列)
JavaScriptの名前
Show the sign
'if' を '?' で書き直しましょう
'if..else' を '?' で書き直します
論理演算子
OR の結果はなんでしょう?
OR されたアラートの結果は何ですか?
AND の結果は何?
AND されたアラートの結果は何でしょう?
OR AND OR の結果
範囲内のチェック
範囲外のチェック
"if" についても疑問
ログインのチェック
NULL合体演算子(Nullish coalescing operator) '??'
ループ: while と for
最後のループ値
while でどの値が表示される?
どの値が "for" ループによって表示されますか?
ループで偶数を出力する
"for" を "while" で置き換える
正しい値が入力されるまで繰り返す
素数の出力
switch文
"switch" を "if" で書き直す
"if" を "switch" に書き換える
関数
"else" は必須ですか?
'?' または '||' を使って関数を書き直す
関数 min(a, b)
関数 pow(x,n)
関数式
アロー関数の基本
アロー関数を使った書き換え
JavaScript スペシャル(これまでのおさらい)
コード品質
Chrome でのデバッグ
コーディングスタイル
Bad style
コメント
忍者コード
mocha による自動テスト
このテストは何が問題でしょう?
Polyfill(ポリフィル)とトランスパイラ
オブジェクト: 基本
オブジェクト
Hello, object
空のチェック
合計のオブジェクトプロパティ
数値プロパティに2を掛ける
オブジェクト参照とコピー
ガベージコレクション
オブジェクトメソッド, "this"
オブジェクトリテラルで "this" を使う
計算機を作成する
チェーン
コンストラクタ、 new 演算子
2つの関数 - 1つのオブジェクト
新しい計算機を作る
新しい Accumulator を作る
オプショナルチェイニング(Optional chaining) '?.'
シンボル型
オブジェクトからプリミティブへの変換
データ型
プリミティブのメソッド
文字列プロパティを追加することはできる?
数値
訪問者からの数値を合計する
なぜ 6.35.toFixed(1) == 6.3?
入力が数値であるまで繰り返す
偶発的な無限ループ
min から max のランダムな数値
min から max のランダムな整数
文字列
最初の文字を大文字にする
スパムのチェック
テキストを切り捨てる
お金を抽出する
配列
配列はコピーされる?
配列操作
配列コンテキストでの呼び出し
入力値の合計
最大のサブ配列
配列のメソッド
border-left-width を borderLeftWidth に変換する
範囲でフィルタする
インプレースで範囲をフィルタする
逆の順序でソートする
配列のコピーとソート
拡張可能な計算機を作る
名前へのマップ
オブジェクトへのマップ
ソートオブジェクト
配列のシャッフル
平均年齢の取得
ユニークな配列メンバをフィルタする
配列からキー付けされたオブジェクトを作成する
反復可能なオブジェクト
Map と Set
ユニークな配列メンバのフィルタをする
アナグラムをフィルタする
反復可能(iterable)なキー
WeakMap と WeakSet
"未既読" フラグを格納する
読んだ日付を格納する
Object.keys, values, entries
プロパティを合計する
プロパティをカウントする
分割代入
分割代入
最大の給与
日付 と 時刻
日付の作成
平日を表示する
ヨーロッパの平日
n 日前の日付はなんでしょう?
月の最後日は?
今日何秒経過しましたか?
明日までの秒数は?
相対日付をフォーマットする
JSON メソッド, toJSON
オブジェクトを JSON に変換して戻す
後方参照を除外する
関数の高度な機能
再帰とスタック
与えられた数値までのすべての数値を合計する
階乗を計算する
フィボナッチ数
単一連結リストを出力する
単一連結リストを逆順で出力する
残りのパラメータ(Rest parameters)とスプレッド演算子(Spread operator)
変数スコープ、クロージャ
関数は最新の変更を取得しますか?
どちらの変数が利用可能でしょう?
カウンタは独立していますか?
カウンタオブジェクト
if の中の関数
クロージャで合計する
変数は参照できますか?
関数を通してフィルタする
フィールドでソートする
関数の軍隊
古い "var"
グローバルオブジェクト
関数オブジェクト, NFE
カウンタの設定と減少
任意の量の括弧で合計する
"new Function" 構文
スケジューリング: setTimeout と setInterval
毎秒を出力する
setTimeout を setInterval で書き直す
setTimeout は何を表示するでしょう?
デコレータと転送, call/apply
Spy デコレータ
遅延デコレータ
Debounce decorator
Throttle decorator
関数バインディング
メソッドとしてのバインドされた関数
2つの bind
バインド後の関数プロパティ
Ask losing this
アロー関数ふたたび
オブジェクトプロパティの設定
プロパティフラグとディスクリプタ
プロパティ getters と setters
プロトタイプ, 継承
プロトタイプ継承
プロトタイプの操作
検索アルゴリズム
どこに書きますか?
なぜ2匹のハムスターがお腹一杯?
F.prototype
"prototype" の変更
同じコンストラクタでオブジェクトを作成する
ネイティブのプロトタイプ
関数にメソッド "f.defer(ms)" を追加する
デコレートする "defer()" を関数に追加する
__proto__ なしでの プロトタイプ メソッド, オブジェクト
辞書に toString を追加する
呼び出し感の差異
クラス
クラス(Class) 基本構文
クラスで書き直す
クラスの継承
インスタンス作成エラー
拡張された時計
クラスは Object を拡張しますか?
静的(static)プロパティとメソッド
Private / protected プロパティとメソッド
組み込みのクラスを拡張する
クラスのチェック: "instanceof"
奇妙な instanceof
ミックスイン
エラーハンドリング
エラーハンドリング, "try..catch"
Finally or just the code?
カスタムエラー, Error の拡張