2
0

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 3 years have passed since last update.

【初学者向け】JavaScriptの分割代入について

Last updated at Posted at 2021-08-29

今回は分割代入について解説していきます。

##分割代入とは?

分割代入とは配列やオブジェクトから値を取り出して、変数に代入してくれるJavaScriptの機能です。

通常の代入では一つの変数に対して一つの値を代入していくのに対して、
分割代入は複数の変数に、配列やオブジェクトの値を一気に流しこむイメージです。

##使い方(①配列の場合 / ②オブジェクトの場合)
①配列の場合
point: 左辺の変数は [ ] で囲うこと

const arry = [10, 20, 30];
//分割代入で一気に代入
const [a, b, c] = arry;

//確認
console.log(a);  // 10
console.log(b);  // 20
console.log(c);  // 30

//一つずつ代入するとしたら...3回代入しなくてはいけない
const a = arry[0];
const b = arry[1];
const c = arry[2];

②オブジェクトの場合
point: 左辺の変数は { } で囲うこと

//まずはオブジェクトを用意
const obj = {
    name: "Tom",
    age: 87
   }

//一気に代入
const {name, age} = obj;

//確認
console.log(name);  //Tom
console.log(age);   //87


////一つずつ代入するとしたら...2回代入しなくてはいけないし、ドット記法を使わなくてはいけない!
const name = obj.name;
cnnst age = obj.age;

##注意点

オブジェクトを分割代入する際、変数名とプロパティは一致させる必要があります!
上の②をちょっと書き換えて確認します

<定義の順を変えてみた場合>

const obj = {
    name: "Tom",
    age: 87
   }
//ageとnameの順番をスイッチ
const {age, name} = obj;

//順番を変えても出る値は変わらず
console.log(name);  //Tom
console.log(age);   //87

<部分的に代入>

const obj = {
    name: "Tom",
    age: 87
   }
//ageだけ定義(nameは代入しない)
const {age} = obj;

//確認
console.log(age);   //87

このように変数名とプロパティは同じ名前のものが対応しているので注意する必要があります。

その他にもいろいろな使い方がありますのでぜひ活用してみてください。

2
0
0

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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?