개발 공부 일지/JavaScript

자바스크립트 - 함수의 파라미터 / 아규먼트

yelimu 2024. 7. 19. 13:33

- 파라미터Parameter: 함수 선언할때 소괄호에 들어가는 부분

 

- 아규먼트Argument :함수를 호출할때 파라미터로 전달하는 값 

 

파라미터 기본값 : ES2015~

아규먼트 없이 함수를 호출하면-> undefined

기본값을 지정해줄 수 있음

 

function greeting(name) {

console.log('Hi! My name is ${name}!');

}

greeting() // Hi! My name is undefined

 

function greeting(name = 'yelim', interest) {

console.log('Hi! My name is ${name}!')

console.log('Hi! I like ${interest}!') ;

}

 

greeting('JavaScript') // Hi! My name is JavaScript! I like undefined!

-> 기본값이 정해져있는 파라미터가 있어도, 아규먼트는 파라미터에 순서대로 할당됨

따라서 기본값이 필요한 파라미터는 뒤쪽에 배치 

 

undefined를 아규먼트로 받아도 기본값이 할당됨 (null은 그대로 받음)


함수 내부에서 arguments 객체를 사용할 수 있다 

출력해보면 아규먼트로 전달받은 유사배열로 출력됨 = [ ]

.length  프로퍼티

for let ... of 문

[ ] indexing

 

호출할때 전달되는 아규먼트 개수에 따라 유연하게 동작하는 함수를 만들수도 있음

파라미터에 넣을수는 x 

변수 이름으로 쓰지않도록 주의 


Rest Parameter : ES2015 ~ 

파라미터 앞에 점 세개 (...) 를 붙여주면 arguments 와 동일하게 동작함 -> 배열 ! 

 

일반 파라미터와 같이 사용할 수 있다 

예를들어 함수의 파라미터 (first, second, ...others) 로 선언하고

함수 호출 시 아규먼트 (1, 2, 3, 4, 5)를 받으면

irst= 1, second = 2, others =[3,4,5] 로 다룰 수 있다 

 

배열의 메소드를 자유롭게 사용 가능 

other.splice (a, b)


Arrow function : ES2015~

이름이 없는 익명 함수이므로 변수에 할당하거나 다른 함수의 아규먼트로 활용

: function을 지우고 () 옆에 => 화살표 만들어주기

 

함수 표현식

const getTwice = function (number) {

return number * 2; } ;

 

함수 선언

function getTwice(number) {

return number * 2; } ;

 

화살표 함수 

const getTwice = (number) => {

return number * 2; } ;

 

또는

const getTwice = number => number*2;

파라미터가 1개인 경우 파라미터를 감싸는 소괄호를 생략할 수 있다

파라미터가 없거나, 2개 이상이면 소괄호는 반드시 작성한다 

함수 내부의 동작이 하나일 경우 return 과 중괄호도 생략할 수 있다

return 값이 객체인 경우에는 소괄호로 객체를 감싸준다 (객체의 {}와 함수의 {}를 구분할 수 없음) 

argument 객체를 사용할때는 일반 함수로 작성한다