진스
구조분해 할당 , 나머지 매개변수 , 전개구문 본문
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