→JavaScript
→JavaScriptのTips
→モダンJavaScript ←カリー化などはこちら
- ページはいつ更新されるか
- 現在のブラウザーの実装は、以下のようになっているようである。「ようである」というのは、仕様書で確認したわけではないからだ。
イベント発生 → 関数の実行 → ページの再描画
- 上記の例で意図したように、カウンターが動いた都度表示させたいと思ったら、その都度関数の実行を完了しなければならない。しかしカウンターを動かすという行為そのものに関数の実行が必要である。どうしたらよいか?
- その答えが、setTimeout()というわけだ。
null, undefined, NaN ...†
クロージャ†
配列の操作†
- メンバに集計したい値を持つオブジェクトの配列で reduce を使って合計を出すサンプル
chargedAmountsTotal() {
return this.chargedAmounts.amounts.reduce(
(accumulator, currentValue) => {
accumulator.amount += currentValue.amount;
return accumulator;
}, {amount:0}
).amount ;
},
非同期処理†
- JSの非同期処理を初めてES6のPromiseを使ったものに書き換えてみた 2018.10
- promiseに渡した非同期処理はすぐに実行されるため、「非同期処理がすぐに終わったらどうなるの?thenを呼ぶ前に終わったらどうなるの?怖い」と最初は思いがちだが実行結果を保持して待つため問題ない。例の場合だとpromiseにAを渡してにthenでB,Cを渡してやると、thenを呼んだ際にAが終わっていようが終わっていまいが、必ずAが終わった後にBかCが呼び出されることになる。
thisの理解†