250x250
Notice
Recent Posts
Recent Comments
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

진스

구조분해 할당 , 나머지 매개변수 , 전개구문 본문

JavaScript

구조분해 할당 , 나머지 매개변수 , 전개구문

입방정 2022. 5. 18. 22:23
728x90

구조분해 할당 (Destructuring assignment)

배열이나 객체 속성을 분해해서 변수에 담을수 있는 표현식

객체

let user = { name: 'mike', age: 30 }

let { name:a, age:b } = user   //name을 a로 age를 b로 
console.log(a, b); //mike 30

배열

//대입
let [a, b, c] = [1, 2]  //a==1,b==2,c==undefined

//초기값
let [a = 3, b = 4, c = 5] = [1, 2] // a==1, b==2, c==5

//공백
let [user1, , user2] = ['a','b','c','d'] //user1== a, user2== c

//쉽게 값바꾸기
let a = 1;
let b = 2;

[a, b] = [b, a]  //값을 바꿈 a==2  b==1

나머지 매개변수

function day(name) {
    console.log(name);
}
day('mon')  //mon
day('mon', 'tue') //mon 두개를 넣어도 에러는 아님
day() //undefined


//나머지 매개변수
function day(...name) {
    console.log(name);
}
day('mon')  //['mon']
day('mon', 'tue') //['mon', 'tue']
day() //[]


//응용
function add(...number) {
    let result = 0
    number.forEach(item => {
        result += item
    })
    return result
}

const a = add(1, 2, 3)
const b = add(1, 2, 3, 4, 5, 6, 7)
console.log(a,b); //6 28

//응용
function User(name, age, ...skills) {
    this.name = name,
        this.age = age,
        this.skills=skills
}
const user1 = new User('son', '30', 'footballl','english')
const user2 = new User('iyou', '32', 'song')
console.log(user1,user2);

전개 구문 (Spread syntax): 배열

let arr1 = [1, 2, 3]
let arr2 = [4, 5, 6]

let res = [...arr1, ...arr2]
let res2 =[0,...arr1, ...arr2,7]
console.log(res); //[1, 2, 3, 4, 5, 6]
console.log(res2); //[0, 1, 2, 3, 4, 5, 6, 7]
728x90

'JavaScript' 카테고리의 다른 글

상속, 프로토타입 (prototype)  (0) 2022.05.19
call, apply, bind  (0) 2022.05.19
Array Methods  (0) 2022.05.18
문자열 메소드 (String methods)  (0) 2022.05.17
숫자, method(Number, Math)  (0) 2022.05.17
Comments