윤제니

JavaScript - 함수의 매개변수(Parameter), 전역변수, 지역변수 본문

JavaScript/JavaScript

JavaScript - 함수의 매개변수(Parameter), 전역변수, 지역변수

꿈다루 2020. 5. 2. 01:34

매개 변수가 있는 함수의 형식 

: 함수에 변수값이 전달되어 처리해야 하는 경우가 있는데, 이렇게 함수에 전달되는 변수 '매개변수'라 한다. 

  함수의 매개변수 값으로는 함수, 객체, 배열로 전달할 수 있다. 

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변수 호출 시 ]

  1. 함수 안에 a변수 찾고
  2. 함수 안에 a변수 미존재시 함수 밖에서 a변수 찾기 

같은 이름의 전역변수와 지역변수가 존재할 경우
전역변수만 존재할 경우 

 

 예) 함수의 매개변수 또한 '지역변수' 이지만 함수 안에서 var를 쓰지 않아도 '전역변수'가 아닌 '지역변수'로 인식