見出し画像

[JavaScript] ドット3つの意味 {...foo}みたいなやつ

ドット3つで{...foo}みたいに表しているものがあったので意味を調べました。

スプレッド構文

スプレッド構文というみたいです。

使い方は

const foo = [1, 2, 3]
const bar = [...foo, 4, 5]
console.log(bar)
// => [1, 2, 3, 4, 5]

って感じです。オブジェクトでも使えます。

const foo = {a: "A", b: "B"}
const bar = {...foo, c: "C"}
console.log(bar)
// => {a: "A", b: "B", c: "C"}

結構便利です。


調べるきっかけになったコード

Nuxtの記事見ていてこの記述があったので調べました。

async addTodo(todo){
  const { data } = await axios.post('/v1/todos', { todo });
  this.$store.commit("setUser", {
    ...this.user,
    todos: [...this.user.todos, data],
  })
}

全部載せると長くなるので載せませんが、mutationのsetUserにuserオブジェクトの情報とuserの持つtodoオブジェクトを一つのオブジェクトにして渡しているようです。

最初見たときはびっくりしました。


まとめ

JSの構文は難しいですね。

この記事が気に入ったらサポートをしてみませんか?