KDE BLOG

Webデザインやコーディングについて書いています

【JavaScript基礎】Array.prototype.reduce() をしっかり理解する&サンプル集

配列のメソッドの中でも個人的にとっつきにくくて苦手意識のあった Array.prototype.reduce()
しかしAPIから取得したデータを扱いやすいように整形できたりと、使いこなせればとても強力なツールになることは間違いなく、この苦手意識を克服するために理解を深めつつ、いくつかのサンプルを作ってみたいと思います。

  • Array.prototype.reduce() の概要
    • 構文
    • 原則、初期値はつけた方が良い
  • サンプル集
    • 配列をオブジェクトにする
    • 配列をインデックス付きのオブジェクトにする
    • 配列内の要素から不要な値を削除する
    • 二次元配列を一次元配列にする
    • 多次元配列を一次元配列にする(再帰
    • 条件にマッチする要素から値を出す
    • 配列内の重複している値を除外する
    • filter() + map() の代わりに使う
    • テンプレートリテラルのタグ関数で文字列の組み立てに使う
  • まとめ
  • 参考
続きを読む

【ES2015】テンプレートリテラルのタグについての基礎

今更ながらES2015のテンプレートリテラルに、タグ という機能があることを知ったので、それについて調べてみようと思います。

  • テンプレートリテラルとは
  • タグとは
    • タグを使ってテンプレートリテラル内の変数を大文字にする例
  • 生の文字列にアクセスする
    • String.raw()メソッド
      • 構文
      • 使いどころ
  • まとめ
  • 参考
続きを読む

CSS Grid Layout の基礎について社内勉強会で発表した

先日、社内で定期的に開催されているフロントエンジニア向けの勉強会で発表する機会があり、CSS Grid Layoutについて興味があったので、基本的な使い方などを調べて発表しました。
スライドは下記になります。

CSS Grid Layoutのもっとも優れていると感じたところ

CSS Grid Layoutは、複雑なレイアウトが簡単に実現できるというのが大きな特徴ではありますが、実は一番すごいと感じたのは、HTML(構造)とCSS(見た目)を分離できるという点です。

もともとCSSが生まれた背景には、構造と見た目を分離するという目的があったのですが、なんだかんだでレイアウト用のdivを入れなければならなかったり、要素の順番を本来の順番にはできなかったことが多々ありました。

しかし今回、簡単ながらサンプルを作ってみて、そういったレイアウトのためにHTMLを何かしたということはありませんでした。ついにこのような形が実現できるようになったのかと感動しました。 下記がそのデモになります。良かったらHTMLコードを見てみてください。 とてもシンプルな構造というのが分かるかと思います。
CSS Grid Layout Demo

ブラウザの対応も進んできて、実際に案件で使える日もそう遠くないと思います。
個人プロジェクトなどでは積極的に使っていき使いこなせるようになっていきたいと思います。

【React】複数のProviderで1つのstoreを参照 & React+Reduxの実装基礎まとめ

今更ながらReduxをちゃんと学び始めて、ReactとReduxを連携した使い方がやっと分かってきました。

今回は少し特殊な例ですが、複数の Provider を使ってのコンポーネントの連携のやり方を紹介しつつ、サンプルを作りながらReact + Reduxの実装を振り返りたいと思います。

※「Actionとは」「Reducerとは」といったことには触れません。あくまでReduxとReactの連携について書いていきます。

続きを読む

【JavaScript】Promiseを使った非同期処理

Promiseについてきちんと理解できていなかったので初歩から学ぶ。

  • Promiseとは
  • 使用できる環境
  • 基本の構文
  • Promise.prototype.then()
  • Promiseの状態変化
  • Promise.prototype.catch()
    • catchメソッドのメリット
      • 1. コードの見通しがよくなる
      • 2. onResolved時にエラーが起きた場合でも拾うことができる
    • インデント
  • Promise.resolve()
    • Promiseオブジェクトが渡された場合
    • Thenableなオブジェクトが渡された場合
    • それ以外の値が渡された場合
  • Promise.reject()
  • Promiseをつなげて使う
    • thenは常に非同期であることに注意
    • エラーハンドリング
  • Promise.all()
    • エラー発生時
  • Promise.race()
  • まとめ
  • 参考
続きを読む

【git】リポジトリの移行時などでremote urlを変更する

  • やりたいこと
  • 手順
  • 参考

やりたいこと

リモートリポジトリを変更した際に、そのままでは pushpull ができないので remote url を変更したい。

続きを読む

【ES2015】分割代入の基本と便利な使い方

  • 分割代入 (Destructuring assignment)とは
  • 配列での使い方
  • オブジェクトでの使い方
  • 便利な使い方
    • 値の入れ替え
    • 複数の返り値の取得
    • 関数の引数を分かりやすく表現
    • ループ処理
    • JSONや、ネストされたオブジェクトや配列から値を取得
  • まとめ
  • 参考
続きを読む