• 회원가입
  • 로그인
  • 구글아이디로 로그인

[Functions] JS - Function Parameter/argument - 함수 (매개변수/독립변수) ※ 변수 종류 ※ Arguments (아규먼츠) 객체

JS 함수는 함수 매개변수 값 (= 독립변수 = 인자)를 체크 안 함.

 

 

매개변수 (parameter)

 

함수 정의할 때 ( ) 안에 독립변수를 받기 위해 미리 나열해 둔 변수.

 


 

function homzzang(a, b, c) {

  // 실행코드

}

 

 

독립변수 (argument) = 전달인자 = 인자

 

함수를 호출할 때 함수 안에 실제로 전달되는 값을 의미.

 


 

echo homzzang(1,2,3);

 

 

매개변수 규칙

 

1.

JS 함수 선언 시, 매개변수의 데이터타입을 지정 안 함.

2.

JS 함수는 전달된 독립변수의 데이터타입을 체크 안 함.

3.
JS 함수는 전달된 독립변수 개수를 체크 안 함.

 

  

매개변수 기본값

 

1.

JS 함수 선언 시 선언된 매개변수 개수보다 적은 수의 독립변수가 전달된 경우,

독립변수가 누락된 매개변수는 undefined 상태가 됨.

 

2.

가끔 괜찮기도 하지만, 되도록이면 매개변수 기본값을 설정하는 게 바람직함.


ECMAScript 2015 이후

 

<p id="demo"></p>


<script>

function homzzang(x=3, y=0) {

  return x * y;

}

document.getElementById("demo").innerHTML = homzzang(3);

</script>

 

결과보기


EScript 2015 전

 

<p id="demo"></p>


<script>

function homzzang(x, y) {

  if (y === undefined) {

    y = 0;

  }  

  return x * y;

}

document.getElementById("demo").innerHTML = homzzang(3);

</script>

 

 

결과보기

 

Arguments 객체

 

1.

JS 함수엔 Arguments 라고 하는 내장 객체 존재.

 

2.

Arguments 객체는 함수 호출 시 전달 된 독립변수를 배열 형태로 갖음.

 

3.

Arguments 객체 활용해 함수 호출 시 전달된 독립변수의 크기 비교 가능.
(예) 값이 가장 큰 독립변수, 값이 가장 작은 독립변수, 독립변수의 평균 등.

 

4.
JS 함수 선언 시 선언된 매개변수 개수보다 훨씬 많은 수의 독립변수 받을 시,
arguments 라는 객체를 활용해 받을 수 있음.  (아래 예제들 참고)

 


독립변수의 최고값 구하기

 

<p id="demo"></p>


<script>

function homzzang() {

  var i;

  var max = -Infinity;

  for(i = 0; i < arguments.length; i++) {

    if (arguments[i] > max) {

      max = arguments[i];

    }

  }

  return max;

document.getElementById("demo").innerHTML = homzzang(3, 4, 5);

</script>

 

결과보기


독립변수 합계 구하기

 

<p id="demo"></p>


<script>

function homzzang() {

  var i;

  var sum = 0;

  for(i = 0; i < arguments.length; i++) {

    sum += arguments[i];

  }

  return sum;

}

document.getElementById("demo").innerHTML = homzzang(3,4,5);

</script>

 

결과보기

관련글 https://homzzang.com/b/tag-1143

 

 

※ 독립변수는 값에 의해 전달

 

1.

독립변수는 함수 호출 시 함수로 전달된 값을 말하며,

JS 함수는 독립변수의 위치가 아니라 값을 인식할 뿐임.


2.

함수가 독립변수 변경해도, 매개변수 원래값은 불변.

 

3.

독립변수 변경은 함수 외부에 표시 (반영)되지 않음.

 

 

※ 객체는 참조로 전달

 

1.

JS에서 객체 참조는 값(value)이라서, 

객체는 참조(reference)로 전달되는 것처럼 동작.

 

2.

함수가 객체 속성 변경하면 객체 원래 값이 변경됨.

 

3.

객체 속성에 대한 변경 사항은 함수 외부에 표시(반영)됨.

 



분류 제목
String JS - concat() 메서드 ★ - 문자열결합 (= 문자열합치기 = concat메서드 = 컨캣메서드)
String JS - endsWith() 메서드 - 지정문자열로 끝나는지(=종료) 여부 (IE12이상)
String JS - fromCharCode() 메서드 - 유니코드를 문자열로 변환
String JS - includes() 메서드 ★ - 지정문자열포함여부 (= includes메서드 = 인클루드즈메서드)
String JS - indexOf() 메서드(문자열) ★ - 처음일치문자열위치찾기 (= 문자열포함검사 = 인덱스어브메서…
String JS - lastIndexOf() 메서드(문자열) ★ - 마지막일치문자열위치찾기 (= 문자열포함검사 = 라스…
String JS - localeCompare() 메서드 - 문자열순서비교
String JS - match() 메서드 ★ - 일치하는 문자열 반환 (= match메서드 = 매치메서드) ※ 정규식 …
String JS - repeat() 메서드 - 지정횟수만큼 문자열반복 (= 리피트)
String JS - replace() 메서드(String용) ★ - 문자열 대체 (= replace메서드 = 리플레이스…
String JS - search() 메서드 - 문자열위치찾기 ※ 문자열포함검사
String JS - slice() 메서드 - 문자열 자르기 (= 문자열 일부 추출 = slice메서드 = 슬라이스 메서…
String JS - split() 메서드 - 문자열 쪼개기 (= split메서드 = 스플릿 메서드) ※ 이메일숨기기 (…
String JS - startsWith() 메서드 - 지정문자열로 시작 여부 (IE12이상)
String JS - substr() 메서드 ★ - 문자열 자르기 - 문자열의 특정 위치 이후의 특정 길이 만큼 반환
String JS - substring() 메서드 ★ - 문자열 일부 추출 (= 문자열 자르기 = substring메서드…
String JS - toLocaleLowerCase() 메서드 - 로캘 소문자로 변환
String JS - toLocaleUpperCase() 메서드 - 로캘 대문자로 변환
String JS - toLowerCase() 메서드 - 소문자로변환
String JS - toString() 메서드 (문자열경우) - 문자열타입으로 변경 (= toString메서드 = 투스…
6/67
목록
찾아주셔서 감사합니다. Since 2012