JavaScript - 함수의 매개변수(Parameter), 전역변수, 지역변수
매개 변수가 있는 함수의 형식
: 함수에 변수값이 전달되어 처리해야 하는 경우가 있는데, 이렇게 함수에 전달되는 변수 '매개변수'라 한다.
함수의 매개변수 값으로는 함수, 객체, 배열로 전달할 수 있다.
function 함수명(매개변수1, 매개변수2,...) {
실행문;
}
함수명(매개변수1 값, 매개변수2 값,...);
var 변수명 = function(매개변수1, 매개변수2,...) {
실행문;
}
변수명(매개변수1 값, 매개변수2 값,...);
예)
만약 name( )함수에서 "Jenny" 대신 다른 이름값들을 출력하고 싶다면 어떻게 해야할까?
"Jenny" 내용이 바뀔 때마다 함수를 수정해야 한다면 무척 번거로운 일이 될 것이다.
이런 경우에 매개변수를 이용하면 아주 유용하다.
위의 '선언적함수' => '익명함수' 와 '람다함수'의 형태로 바꿔보자
예) 매개변수값으로 객체, 배열도 전달 가능
매개 변수의 개수가 정해지지 않은 함수
: 매개 변수의 개수를 정할 수 없는 함수를 만들어야 하는 경우도 존재
이 경우 매개변수의 개수가 정해져 있지 않기 때문에 넘어오는 매개 변수값들을 저장할 수 있는 저장 장소가 필요
자바스크립트에서는 'arguments'라는 객체를 제공해 준다.
함수 안에서의 함수 호출
: 함수는 필요에 따라 함수 외부에 있는 다른 함수를 호출하여 사용할 수도 있고 함수 내부에 또 다른 함수를 만들어 호출할 수 있다.
1) 함수 외부의 함수(전역함수) 호출
: 다른 함수에서도 필요에 따라 언제든지 호출하여 사용 가능
toFixed( ) : 소수점을 매개 변수값을 자릿수만큼 반올림하여 문자로 만들어 준다.
2) 함수 내부의 함수(내부함수) 호출
: 전역함수와 달리 직접적으로 호출하여 사용 불가능
전역(Global) 변수와 지역(Local) 변수
변수 : 쓰임에 따라 함수 밖에서 정의될 수도 있고 함수 안에서 정의될 수도 있다.
전역변수 | 지역변수 |
var 변수명; function 함수명 {
}
|
function 함수명 { var 변수명;
} |
● 전역변수 : 함수 밖에서 정의된 변수
전역의 범의를 가지고 있어 함수 안과 밖에서 사용 가능
● 지역변수 : 함수 안에서 정의된 변수
함수 안에서만 실행하는 변수이기 때문에 함수가 실행될 때 생성되며 함수의 실행이 끝나면 사라지게 된다.
함수 밖에서 호출 불가능 , 함수가 실행될 때마다 변수값이 초기화 된다는 뜻 => 변수의 스코프(scope)
함수 안에서 'var'를 붙여 변수를 만들어야 '지역변수'가 되므로 지역변수를 만들 때 'var' 붙이는 것 기억!
예) 전역변수 num1 과 지역변수 num2의 차이
=> num2는 지역 변수이기 때문에 함수의 실행이 끝난 후 사라지므로 호출할 수가 없다.
그러므로 num2 변수값을 미출력
예) 변수의 이름이 같은 전역변수와 지역변수
=> 변수의 이름이 같지만 함수 밖의 변수 a는 전역변수 / 함수 안의 변수 a는 지역변수
[ a변수 호출 시 ]
- 함수 안에 a변수 찾고,
- 함수 안에 a변수 미존재시 함수 밖에서 a변수 찾기
예) 함수의 매개변수 또한 '지역변수' 이지만 함수 안에서 var를 쓰지 않아도 '전역변수'가 아닌 '지역변수'로 인식