2013년 2월 20일 수요일

[JS] 함수

익명 함수
var 변수명 = function(){
     alert("Hello World!");
}
변수명();//함수호출

함수를 변수에 저장하여 함수호출을 하는 형태이다. 함수의 이름이 따로 없고 변수를 사용하여 호출하므로 익명함수라고 한다.

선언적 함수
function 함수명(){
    alert("Hello World!");
}
함수명();//함수호출

익명함수와 선언적함수의 차이는?
변수를 선언한다는 것과 함수를 선언한다는 차이가 있다.

웹 브라우저는 script태그 내부의 내용을 한줄씩 읽기 전에 선언적 함수부터 읽는다. 따라서 익명함수는 선언적함수보다 나중에 읽어들이게 되는 차이가 있다.

매개변수
앞서 언급했지만 자바스크립트에서는 함수의 매개변수의 갯수나 자료형에 관대하다. 다른 언어와 큰 차이이고 이런 특성으로 인해 함수 오버로딩이 되지않는 것은 당연하다.

매개변수에 함수 전달
함수도 하나의 자료형이므로 매개변수로 전달할 수 있다.
예)
function callFunction(otherFunction){
    for(var i=0; i<5; i++){
         otherFunction();
    }
}

function f1(){
    alert("Hello World!");
}

callFunction(f1);
여기서 눈여겨보아야할 부분은 f1함수의 함수명만으로 매개변수의 인자를 넘겨주고 있는 부분이다. 그리고 다시 함수명에 ()를 붙여서 함수호출을 하는 것을 잘 봐두자.

클로저
return을 이용하여 변수에 값이나 함수를 저장하는 것을 의미한다. 함수가 종료하면 내부의 변수와 값들은 제거되기 마련이지만 클로저를 이용하여 유효한 데이터 값을 유지할 수 있는 방법이다. 

내장함수
eval() : 자바스크립트 코드가 맞는지 검증하고 수행
parseInt() : 문자열을 점검하여 수치를 정수로 반환
parseFloat() : 문자열을 점검하여 수치를 반환
escape() : 문자열을 %16진수의 ASCII코드값으로 반환(인코딩)
unescape() : escape()에 의해 인코딩된 값을 디코딩
encodeURIComponent() : 알파벳과 숫자를 제외한 모든 문자를 인코딩. UFT-8인코딩과 같다.(가장 많이 사용하는 인코딩 함수이다.)
decodeURIComponent() : 디코딩
isNaN() : 수치를 점검하여 무효한 수치인가를 검증
isFinite() : 수치를 점검하여 유효한 수치인가를 검증


댓글 없음:

댓글 쓰기