Javascript 함수 종류

송이·2023년 1월 19일
1

Javascript

목록 보기
1/2
post-thumbnail

📌 일반함수

function 함수명(){
    //자바스크립트 코드문
}
function abc(d, e){
    return d + e;
}
  • 파싱 //파싱(parsing) : 구문 분석// 하는 단계에서
    함수 변수인 abc가 정의, 함수를 호출하면 런타임에 d,e가 정의된다
  • 자바스크립트를 처음 읽을 때만 해석된다
  • 호출문이 다른 함수보다 앞에 있더라도 호출이 가능하다

📌 익명함수

var abc function(d, e){
    return d, e;
}
abc(d,e);
  • 이름이 없기 때문에 접근할 때 비로소 해석, 실행될 때 함수 몸체 해석
  • 실행코드 블록을 갖는 함수를 정의해 abc라는 변수에 할당
    이렇게 정의된 함수는 이름이 없어서 이름 대신 변수로 호출할 수 있다
    실행코드로서 런타임에 함수가 제공
  • 다음과 같이 함수 리터럴(변수)을 이용해 정의된 함수를 이야기 한다
    익명함수는 주로 이름이 없거나 변수에 할당되거나 함수 인자의 값 또는
    반환값으로 사용된다

1) 함수 리터럴을 사용하여 생성한 함수

function abc(d, e, f){
    //함수 본문
}
//함수 리터럴 : 'function(a, b){...}' 부분
var other = function(a, b){
    //함수 본문
}
//other : 함수 리터럴에 의해 정의되어 할당된 변수(함수 표현식)
abc(other, a, b);

2) 함수 객체 생성자의 의한 함수 생성 방법

//ex1)
var square = new Function("x", "return x * x");
square(5);  
//숫자 25 출력

//ex2)
var functionName = new Function (x, y, functionBody);
functionName(a, b); 
// 호출시에 Function 함수 객체에서 두 인수 a, b를 처리하게 됨

📌 중첩함수

function fstFncExample () {
    var a = 1;
    function secondFncExample () {
      return a * 2;
    }
    return secondFncExample();
}
  • 다른 함수 내부에서 정의되는 함수를 의미
    특정 함수에서만 사용할 기능이라면 외부에 노출시키지 않고
    내부에 정의해서 사용할 수 있는 것이다
    지역변수의 스코프가 함수 단위로 이루어지기 때문에
    내부 함수에서는 내부에 정의된 변수를 참조할 수 있다

📌 콜백함수

function MainFnc {
    var arg;
    // 콜백함수를 익명으로 전달하는 구조
    LibraryFunction(arg, function(result){
      // result를 사용한 연산
    });
}
  • 라이브러리를 가지고 있는 함수가 라이브러리를 호출하고
    라이브러리에서 실행을 마치고 다시 측정함수를 호출하는 구조
    이때 다시 호출하는 특정함수를 콜백함수라고 한다

📌 로드함수

페이지 로드시 호출될 콜백 함수

window.onload = function() {
    alert('This is the callback function.');
}
  • 페이지의 모든 요소들이 로드된 이후에 호출된다
  • html의 로딩이 끝난 후에 시작된다
  • 화면에 필요한 모든 요소(css, js, image 등)들이 웹브라우저 메모리에
    모두 올려진 다음 실행 된다

📌 $(document).ready()

$(document).ready(function(){
    //자바스크립트 코드문
});
  • DOM(document object model)트리들이 모두 로드된 시점에 호출 된다
  • window.onload 함수의 문제점을 해결하기 위해 사용 되었고 훨씬 빠르다
  • $(function(){})과 같다 하지만 $(document).ready()를 더 권장함
    이유는 $(window).load() 함수와 확실하게 구분 지어주기 위해서다

📌 즉시 실행함수

(function (name) {
     console.log('This is the immediate function --> ' + name);
})('foo');
  • function 부분을 괄호로 감싼 다음 바로 호출될 수 있게 ()를 추가
  • 괄호안에 값을 추가하여 인자로 넘길 수 있다
profile
디자인에서 프론트엔드 개발까지 하게 된 구름이 집사😺

0개의 댓글