자바스크립트 - 함수의 파라미터 / 아규먼트
- 파라미터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 객체를 사용할때는 일반 함수로 작성한다