본문 바로가기

WEB/HTML CSS JS

7. javascript 함수, 재귀 함수, 내장 함수 정리

반응형

함수란

변수로는 데이터를 저장할 수 있지만, 함수로는 코드 자체를 저장할 수 있다.

자주 사용하는 코드를 저장해놓고 필요할 때 마다 함수를 호출하여 사용한다.

함수 정의

function textFnc(){
	document.write("짧지만 나도 함수");
}

var anonyFnc = function(){
	document.write("나는 익명 함수");
}

일반 함수와 익명 함수 차이점은 호이스팅 가능다.

호이스팅이란 함수 호출이 함수 정의보다 먼저 되어도 정의부분을 끌어올려 호출 가능하게 해준다.

그러나 익명 함수은 호이스팅이 불가능해 정의보다 미리 호출되면 오류가 발생한다.

값을 전달 받는 함수

함수는 매개변수를 통해 값을 전달 받는다. 그러나 arguments 변수를 이용할 수도 있다.

function paraFnc(num, str){		
    document.write("num : " + num, "<br>");
    document.write("str : " + str, "<br>");
}
function arguFnc() {
    var count = 1;
    for (i of arguments) {
        document.write(`argu${count++} : ` + i, "<br>");
    }
}

arguFnc("sdf","3r23",33,234,0);

String.raw는 작은 따옴표가 아닌 백래시를 사용한다.

값을 반환하는 함수

함수는 값을 전달 받을 수도 반환할 수도 있다.

return문을 사용하면 반환과 동시에 함수를 종료한다.

즉 임의로 함수를 중단시킬 수 있는 분기문으로도 사용된다.

function retrnFnc(){
    return "나는 문자열을 반환한다.";
}

document.write("<p>" + retrnFnc() + "</p>");

 

재귀 함수

함수 내부에서 자신을 호출하는 함수를 재귀함수라 부른다.

function factorialFnc(num){
    if(num == 0){
        return 1;
    }
    return num * factorialFnc(num-1);
}

console.log(factorialFnc(4));

 

내장 함수

javascript 내부에는 내장 객체가 있듯 내장 함수도 있다.

함수 설명
encodeURI() 문자를 유니코드값으로 인코딩(영어, 숫자, 일부 기호 제외)
encodeURIComponent() 문자를 유니 코드값으로 인코딩(영어, 숫자 제외)
decodeURI() 유니코드값을 문자로 디코딩(영어, 숫자, 일부 기호 제외)
decodeURIComponent() 유니코드값을 문자로 디코딩(영어, 숫자 제외)
parseInt() 문자열을 정수형으로
parseFloat() 문자열을 실수형으로
String() 문자형 데이터로
Number() 숫자형 데이터로
Boolean() 논리형 데이터로
isNaN() 문자열에 숫자 외 문자가 있으면 true
eval() 문자형 데이터를 코드 처리

끝으로

이렇게 함수에 대해서 알아보았다. 함수로 코드를 저장해 사용할 수 있으니

2번 이상 사용하는 중복되는 코드는 함수로 만들어 사용하는 것을 추천한다.

 

 

 

반응형