본문 바로가기
Web/Javascript

나머지 매개변수, 전개 연산자 차이점

by zkzk7290 2024. 8. 15.
반응형

함수에 접근하는 방법 2가지  - 1, argument ,  2 나머지 매개변수

1.  argument (인수)  :  함수를 호출할 때 이때 사용하게 되는 일련의 값
  • 함수로 넘어온 모든 인수에 접근
  • 함수 내에서 이용가능한 지역 변수 
  • index/length, array형대의 객체
  • 배열 내장 메서드 없음(forEach, map)
function showName(name){
    console.log(arguments.length);// 2
    console.log(arguments[0]);// mike
    console.log(arguments[1]);//mtom
}
showName('mike','mtom')

 

2, 나머지 매개 변수 : 함수가 정해지지  않은 수의 매개변수를 배열로 받는다. -  쉽게  말해서 배열을 압축해 준다.
  • ... 매개변수 자료형 은배열이다.
  • 일반적인 매개변수 값을 넣지 않으면 undefined 나온다.
  • ... 매개변수는  마지막에 넣어줘야 한다.-( const sum1 = function(... 매개변수, a, b){ }  잘못된 예  )
  • 이렇게 되면  문법 오류(Syntax Error)가 뜬다.
const sum = function(... 매개변수){// 일반적인 매개변수랑 함께 사용 가능 , 인수 갯수의 제한이 없다.
    console.log(매개변수);
}
sum();
sum(1);//결과: [1]
sum(1,2);//[1,2]
sum(1,2,3);//[1,2,3]
sum(1,2,3,4);//[1,2,3,4]

지금은 argument 보다는 나머지 매개변수를 사용하는 게 훨씬 더 좋다.!!!

전개 구문(Spred Syntax) : 배열 - 쉽게 말해서 배열을 펼치다.
const InArray = function(a,b,c){
    console.log(a,b,c);
}
const a = [1,2,3];
InArray(a[0],a[1],a[2]);// 1 2 3
InArray(...a);// 1 2 3

 이렇게 일일 a [0], a [1]을 해서 값을 출력하는 것보다... a를 쓰면  편리하다.

// EX min이라는 함수를  만들때
//일반적인 함수 만들때
const min =function(배열){
    let output =배열[0];
    for(const value of 배열){
        if(output> value){
            output=value;
        }
    }
    return output
}
console.log(min([52,273,32,103, 275,24,57]));

// 나머지 매개변수 와 전개 연산자를 사용해서  함수 구현 
const min1 =function(...배열){
    let output =배열[0];
    for(const value of 배열){
        if(output> value){
            output=value;
        }
    }
    return output
}
//만약에 배열 형식 
// const b  = [52,273,32,103, 275,24,57]
// console.log(min(...b))
console.log(min1(52,273,32,103, 275,24,57));// 배열이 아닌 (요소)를 넣어서  출력 해야한다

이렇게 나머지 매개변수, 전개 연산 자을 지금 알아야 하는 이유 : api를 조금 더 설계를 잘하기 위해서 이다.

 

https://www.youtube.com/watch?v=TrRPLL2sOmQ&t=1s

 

 

반응형

'Web > Javascript' 카테고리의 다른 글

이벤트( Event) ?  (2) 2024.08.08
객체(Object)란 무엇인가???  (0) 2024.08.07
콜백 함수  (0) 2024.08.06
삼항 연산자  (0) 2024.08.05
원시형 자료형 , 참조형 자료형  (0) 2024.07.31