일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 파이썬 장고
- Kotlin 클래스
- activate 오류
- github
- Python Class
- 강제 타입변환
- python Django
- django virtualenv
- Python
- 다중조건문
- 도전
- 파이썬 반복문
- 클래스 속성
- git
- Kotlin else if
- 자바 기본타입
- 희망
- NextJs
- 성공
- Kotlin If
- 파이썬
- 파이썬 제어문
- 좋은글
- 장고 가상환경
- 넥스트js
- 파이썬 클래스
- Variable declaration
- Kotlin 조건문
- Kotlin Class
- Kotlin 클래스 속성정의
Archives
- Today
- Total
키모스토리
#10 나머지 매개변수, 전개 구문(Rest parameters, Spread syntax) 본문
Web Devlopment/JavaScript
#10 나머지 매개변수, 전개 구문(Rest parameters, Spread syntax)
키모형 2025. 3. 19. 02:11반응형
arguments
- 함수로 넘어 온 모든 인수에 접근
- 함수 내에서 이용 가능한 지역 변수
- lenght / index 를 가짐
- Array 형태의 객체
- 배열의 내장 메서드 없음 (forEach, map 사용안됨)
function showName(name){
console.log(arguments.length);
console.log(arguments[0]);
console.log(arguments[1]);
}
showName('Mike', 'Tom');
// 2
// Mike
// Tom
나머지 매개변수 (Rest parmeters)
... 으로 표현
function showName(...names){
console.log(names);
}
showName();
showName('Mike');
showName('Mike', 'Tom');
[]
[ 'Mike' ]
[ 'Mike', 'Tom' ]
사용예)
/**************************
나머지 매개변수
전달 받은 모든 수를 더해야함
***************************/
function add(...numbers){
let result=0;
numbers.forEach(num=>{
result+=num;
})
console.log(result);
}
add(1,2,3); // 6
add(1,2,3,4,5,6,7,8,9,10); // 55
/*********************************
나머지 매개변수
user 객체를 만드어 주는 생성자 함수
**********************************/
function Users(name, age, ...skils){
this.name=name;
this.age=age;
this.skils=skils;
}
const user1 = new Users('Mike', 30, 'html', 'css');
const user2 = new Users('Tom', 24, 'JS', 'React');
const user3 = new Users('Han', 28, 'English');
console.log(user1);
console.log(user2);
console.log(user3);
// Users { name: 'Mike', age: 30, skils: [ 'html', 'css' ] }
// Users { name: 'Tom', age: 24, skils: [ 'JS', 'React' ] }
// Users { name: 'Han', age: 28, skils: [ 'English' ] }
전개 구문 (Spread syntax) : 배열
//전개 구문 (Spread syntax) : 배열
let arr1 = [1,2,3];
let arr2 = [4,5,6];
let result = [...arr1, ...arr2];
console.log(result);
[ 1, 2, 3, 4, 5, 6 ]
// 전개구문을 이용한 복제
let arr = [1,2,3];
let arr2 = [...arr]; // [1,2,3]
let user = {name: 'Mike', age:30};
let user2 = {...user};
user2.name = "Tom";
console.log(user.name);
console.log(user2.name);
// Mike
// Tom
/******************************
* 전개 구문
* arr1 을 [4,5,6,1,2,3] 으로
*******************************/
let arr1 = [1,2,3];
let arr2 = [4,5,6];
// arr2.reverse().forEach(num => {
// arr1.unshift(num);
// });
arr1 = [...arr2, ...arr1];
console.log(arr1);
// [ 4, 5, 6, 1, 2, 3 ]
let user = {name: "Mike"};
let info = {age: 30};
let fe = ["JS", "React"];
let lang = ["Korean", "English"];
// user = Object.assign({}, user, info, {
// skiles:[],
// });
// fe.forEach((item)=> {
// user.skiles.push(item)
// });
// lang.forEach((item)=> {
// user.skiles.push(item)
// });
user = {
...user,
...info,
skils: [...fe, ...lang]
}
console.log(user);
// {
// name: 'Mike',
// age: 30,
// skiles: [ 'JS', 'React', 'Korean', 'English' ]
// }
반응형
'Web Devlopment > JavaScript' 카테고리의 다른 글
#13 call, apply, bind (0) | 2025.03.19 |
---|---|
#12 setTimeout, setInterval (0) | 2025.03.19 |
#9 구조 분해 할당 (Destructuring assignment) (0) | 2025.03.18 |
#8 배열 메소드2 (sort, reduce) (0) | 2025.03.18 |
#7 배열 메소드2 , sort(), reduce() (0) | 2025.03.17 |