반응형
함수는 일반적으로 다음과 같은 형태를 가진다.
function myFun(매개변수1, 매개변수2){
//코드
}
즉, 함수의 식별자인 myFun의 ( ) 내 인자로는 매개변수를 가질 수 있고, 할당된 매개변수는 함수 스코프 내부에서 선언 및 할당된 변수의 역할을 수행한다.
또한 함수의 매개변수에 아무런 값을 전달하지 않으면, 기본적으로 undefined 가 할당되기 때문에 어찌 보면 undefined가 함수 매개변수의 기본값이라고 할 수 있다.
ㅁ 매개변수에 아무런 값을 전달하지 않은 경우
function myFun(a,b){
console.log(a,b)
}
//함수 호출
myFun()
//출력결과) 이것을 통해서 a,b 에는 undefined가 할당된 것을 확인할 수 있다.
undefined undefined
허나, 우리는 이러한 기본값을 다른 값으로 대체할 수 있다. 즉 매개변수 = value 의 형태로 할당한다면, 우리가 함수를 호출 할 때 아무런 인자값을 전달하지 않아도 함수는 기본적으로 지정된 값을 스코프 내부에 전달하여 사용할 수 있게 된다.
말이 길어 졌는데, 예시로 들면 다음과 같다.
ㅁ 매개변수에 아무런 값을 전달하지 않았으나, 기본값을 직접 설정하는 경우
function myFun(a=5,b=20){ //매개변수 기본값으로 5,20을 각각 할당했다.
console.log(a,b)
}
// 보다 시피 아무런 인자값도 전달하지 않고 호출했다.
myFun()
//출력결과) 기본값으로 설정한 값이 그대로 출력되었다.
5 20
이러한 방식은 함수를 그냥 호출해도 undefined 가 아닌 유의미한 값을 얻고자 할 때 사용할 수 있다.
그리고 이러한 지정 방식으로 값을 할당해도 결국은 기본값이기 때문에 매개변수에 직접 값을 전달하면, 전달된 값이 매개변수의 값이 된다.
ㅁ 매개변수에 기본값을 할당하고, 함수 호출 시 매개변수에 다른 값을 전달한 경우
//매개변수에 기본값으로 5와 20이 설정되어 있다.
function myFun(a=5,b=20){
console.log(a,b)
}
// 매개변수에 10과 20을 전달한다.
myFun(10,30)
// 출력결과) 함수 호출 시 전달한 인자값이 매개변수에 할당되어 출력되었다.
10 30
예시에서 볼 수 있듯이, 기본값의 역할을 충실히 수행하고 있다. 고로 undefined가 싫으면 다른 값으로 지정하도록 하자.
반응형
'자바스크립트' 카테고리의 다른 글
[javascript] getAttribute 와 setAttribute 그리고 classList.add... (0) | 2023.01.03 |
---|---|
[javascript] this 는 호출하는 방식에 따라 가리키는 대상이 달라진다. (0) | 2023.01.01 |
[javascript] (함수)스코프와 스코프 체인? (0) | 2022.12.30 |
[javascript]Array.sort() 사용 시 숫자 정확하게 정렬하기(1,5,10,...) (2) | 2022.12.27 |
[javascript] webpack dev server 오픈 시 이미 열린 포트가 있다면, (0) | 2022.12.27 |