본문 바로가기

JavaScriprt-문법

JavaScript 문법 종합반 문법-구조분해할당

구조분해할당 : de(not)+ structure(구조) + ing

배열의 경우

let [value1, value2] = [1, "new"];
console.log(value1) = 1

 

let arr = ["value1","value2","value3"]
let [a,b,c]=arr;

console.log(a)=value1
console.log(b)=value2
console.log(c)=value3

 

let arr = ["value1","value2","value3"]
let [a,b,c,d]=arr;

console.log(a)=value1
console.log(b)=value2
console.log(c)=value3
console.log(d)=undefined

 

let arr = ["value1","value2","value3"]
let [a,b,c,d=4]=arr;

console.log(a)=value1
console.log(b)=value2
console.log(c)=value3
console.log(d)=4

d의 값이 초기값으로 나온다.

 

let arr = ["value1","value2","value3","value4"]
let [a,b,c,d=4]=arr;

console.log(a)=value1
console.log(b)=value2
console.log(c)=value3
console.log(d)=value4

d의 값이 초기값이 아닌 할당된 값으로 나온다.

 

 

객체의 경우

let {name, age} = {
    name : 'abc',
    age : 30,
};
console.log(name)=abc
console.log(age)=30

let name과 age에 값이 할당된다.

 

객체의 경우 2

let user = {
    name:"abc",
    age: 30,
}

let {
    name: newName,
    age : newAge,
} = user

console.log(newName)=abc
console.log(newAge)=30
console.log(name)=undefined

let user의 객체에 대한 키값을 newName,newAge 로 할당했기 때문에 각각의 값은 abc, 30이지만 name은 undefined다.

 

let user = {
    name:"abc",
    age: 30,
}

let {name, age, birtday="today"}=user
console.log(name) = abc
console.log(age) = 30
console.log(birtday) = today

배열과 마찬가지로 초기값이 나온다. 그리고 배열과 마찬가지로 let user에 britday의 키와 값이 설정되면 그 값이 나온다.