1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[ES6] オブジェクトリテラルの省略記法

Last updated at Posted at 2023-11-22

Reactで頻出するこれ

// id, name, email がpropsで渡ってきているとして
const userData = {
  id,
  name,
  email,
  ........
}

こういう書きかた。
よくわからないがkeyとvalueが同じであれば省略できるという理解でいる。
詳しく理解せずに1年以上もReactを書いている。
よくない。調べようと思う。

「オブジェクトリテラルの省略記法」と言うらしい

前述のuserDataオブジェクトは、昔ながらの書きかたではこうなる。

// id, name, email がpropsで渡ってきているとして
const userData = {
  id = id,
  name = name,
  email = email,
  ........
}

しかしReactではpropsで持ってきた変数にデータを代入することが頻発するため、さすがに冗長に感じてしまう。

そのときにES6で加わったオブジェクトリテラルの省略記法という新しい書きかたをしているのが、一番上のコードだったのだ。

同じくES6で加わったデフォルト引数とも相性がよい。

function fn ( options = {} ) {
  let id = options.id;
  let name = options.name;
  let email = options.email;
  // 以下同じような定義
}

引数のオプションはこうやってだらだら書いてしまいがち。というか、今まではこう書くほかはなかった。

↑これを、↓こう書くことができる。

function fn(options = {}){
  let {id, name, email, 以下続く} = options;
}

見通しがよくなる。

スクラムチームでは

省略記法は糖衣構文ではないので独断で採用して怒られるということはないが、使う必要のないところ(例:keyが2、3の少ないデータ)で使うのは初見の開発者にとって見づらいかもしれない。

一番大切なのはセキュリティで、次点は処理速度、三番目はメンバーにとって読みやすいことだと常々思っている。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?