bunty's blog

ググったこととか勉強したことのメモ

JS のデストラクチャリング

よくあるこんな感じのコード、これ自体はよく使うんだけども他にも色々と使ってない使い方があったのでまとめ。

const { data } = await axios.get('/some_api')

関数の引数でも使用可能

object を引数に渡す場合で特定の key しか 特定の key しか使わない場合だったり、明示的にどの key を使用するのかわかりやすい。毎回 obj.key1 とやらなくて良いので便利。

const obj = {
  key1: 'val1',
  key2: 'val2',
  key3: 'val3',
}

const hoge = ({ key1 }) => {
  console.log(key1)
}

hoge(obj) // val1

スプレッド演算子で残りの key を全てまとめて代入

React の勉強をしていて、よく ...props としている箇所が出てきたけどこう言うことか。

const hoge = ({ key2, ...props }) => {
  console.log(key2, props)
}
hoge(obj)  // val2 { key1: 'val1', key3: 'val3' }

デフォルト値の設定も可能

これも知らなかったけど、調べてたらデフォルト値の設定も可能。 API からデータを取得して key がなければデフォルト値を設定するみたいなコードを書いたことがあったので、これは使えそう。

const { key3 = 'hoge', key4 = 'val4', ...rest } = obj
console.log(key3, key4, rest) // val3 val4 { key1: 'val1', key2: 'val2' }