천상나타의 일상다반사

닫기 검색결과 전체 보기

    자바스크립트 함수선언, 함수표현식의 차이 그리고 익명함수 관련 정리

    IT/javaScript 2018. 6. 5. 14:31
    728x90

    귀찮아-[이모티콘]어밴드

    자바스크립트는 함수를 어떻게 정의하느냐에 따라

    함수 선언 및 함수 표현식 그리고 익명함수로 분리됩니다.


    1. 함수 선언

    함수 선언이란 script 내부에서 

    아래와 같이 함수를 정의할 때 함수선언이라고 불립니다.

    function javaScriptTEST(){
       //함수 선언
       //구현 로직
    }
    

    함수선언은 기존의 프로그래밍에서 가장 명시적이고 많이 쓰이는 방식입니다.

    브라우저에서 코드를 인식하는 과정 중 제일 처음으로 해석되는 것이 함수 선언입니다.

    그러므로 함수 선언은 script의 위치가 어느 곳에 있어도 브라우저가 인식할 때

    가장 먼저 해석하게 됩니다. 

    프로그램의 순서는 무조건 위에서 아래로, 

    왼쪽에서 오른쪽으로 흘러간다는 개념으로 볼 때

    함수 선언이 밑에 있고 함수 사용을 위에서 해도 

    문제가 되지 않는 다는 의미입니다.


    2. 함수 표현식

    함수 표현식이란 script 내부에서 

    아래와 같이 함수를 정의할 때 함수표현식이라고 불립니다.

         
          var javaScriptTEST = function(){
           //함수 표현식
          }
    

    함수표현식은 함수선언과는 다르게 특정 변수에 함수를 할당하는 것으로

    변수를 참조변수로 사용합니다.

    함수 표현식의 참조변수는 변수이므로

    함수의 인자값으로 전달이 가능합니다.

    함수의 파라미터로 전달이 가능하므로 함수 안에서 함수를 컨트롤 할 수 있습니다.

    즉 콜백 함수로 사용할 수 있습니다.

    그리고 좀 더 들어가면 

    함수 표현식을 통해서 클로져도 사용할 수 있습니다.

    (클로져와 관련된 부분은 아래 링크를 클릭하세요.)

    바로가기


    함수표현식은 함수선언과는 다르게 

    페이지 내부의 함수선언이 모두 해석된 다음에 

    함수표현식이 해석됩니다. 

    (프로그램의 흐름도가 달라질 수 있으므로 매우 중요함!)




    3. 익명 함수

    익명함수란 말 그대로 함수에 이름이 없는 것을 말합니다.

    단 한번 사용되는 함수에 주로 익명함수를 사용합니다.

    익명함수를 사용함으로써 코드의 간결함과 중복될 수 있는 함수명을 피할 수 있습니다.

    아래와 같이 함수를 정의할 때 익명 함수라고 불립니다.

         
        setTimeout( function(){
           //익명 함수
          
        }, 1000);
    
         //or
    
        window.onload = function() { 
          //익명 함수 
        }
    


    위의 코드처럼 setTimeout함수는 1초 후

    ( 1000은 ms를 뜻하므로 1초입니다. 

    단위(시, 분, 초 ms ,us ,ns) 변환에 대해 궁금하시다면 아래 링크를 클릭하세요. )

    단위변환 바로가기


    첫번째 파라미터의 함수를 실행합니다.

    onload는 window 객체에 내장된 속성으로

    페이지 로드시 한번 실행되는 속성을 가지고 있습니다.

    함수가 필요한 부분에 한번 만 실행되는 것이라면 

    익명 함수로 사용하는게 코드를 간결하고

    프로그램의 응집도를 높게 할 수 있는 방법이 됩니다.


    익명 함수를 특정 변수에 대입한다면 그 함수는 함수표현식이 되겠네요.


    '공감' 및 '좋아요'는 글쓴이에게 큰 힘이 됩니다!

    블로그 구독도 부탁드립니다.(네이버이웃 추가)



    728x90

    'IT > javaScript' 카테고리의 다른 글

    자바스크립트 window 객체의 속성을 알아보자(자신의 브라우저에 따라 다름)  (0) 2018.06.12
    자바스크립트 JSON 객체의 parse 및 stringify 정리.  (0) 2018.06.12
    자바스크립트(JavaScript) 비교 - 일치연산자 '==' 와 '===' 이해  (0) 2018.05.30
    [자바스크립트] 파라미터와 인자의 차이 - 상세설명  (1) 2018.05.23
    [자바스크립트] 주민등록번호 검증 하기 소스 script  (0) 2018.04.23

    'IT/javaScript' 관련 글 more
    • thumbnail
      자바스크립트 window 객체의 속성을 알아보자(자신의 브라우저에 따라 다름) 2018.06.12
    • thumbnail
      자바스크립트 JSON 객체의 parse 및 stringify 정리. 2018.06.12
    • 자바스크립트(JavaScript) 비교 - 일치연산자 '==' 와 '===' 이해 2018.05.30
    • thumbnail
      [자바스크립트] 파라미터와 인자의 차이 - 상세설명 2018.05.23
    Posted by 천상나타

Google Translate

Naver Neighborhood

    최근...

  • 포스트
  • 댓글
  • 더 보기

글 보관함

«   2025/07   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

카테고리

분류 전체보기 (393)
IT (130)
JAVA (19)
JSP (5)
NoSql (8)
Linux (5)
javaScript (13)
Oracle (7)
MySql (2)
Android (1)
Spring (8)
Server (19)
System (13)
Tool (30)
공부자료(비공개) (0)
일상 (258)
맛집 (69)
해외여행 (31)
국내여행 (21)
우리집 고양이 쪼꼬 (4)
디저트&야식 (49)
영화 후기 (2)
제품리뷰 (5)
추천노래 (3)
취미 (74)
다이어트 (0)
유용한정보 (5)
블로그팁 (4)
지역정보 (1)

카운터

Total
Today
Yesterday
  • 네이버 이웃추가
  • 방명록
천상나타's Blog is powered by daumkakao
Skin info material T Mark 5+ by 뭐하라
favicon

천상나타의 일상다반사

IT정보공유 및 일상다반사

  • 네이버 이웃추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (393)
    • IT (130)
      • JAVA (19)
      • JSP (5)
      • NoSql (8)
      • Linux (5)
      • javaScript (13)
      • Oracle (7)
      • MySql (2)
      • Android (1)
      • Spring (8)
      • Server (19)
      • System (13)
      • Tool (30)
      • 공부자료(비공개) (0)
    • 일상 (258)
      • 맛집 (69)
      • 해외여행 (31)
      • 국내여행 (21)
      • 우리집 고양이 쪼꼬 (4)
      • 디저트&야식 (49)
      • 영화 후기 (2)
      • 제품리뷰 (5)
      • 추천노래 (3)
      • 취미 (74)
      • 다이어트 (0)
    • 유용한정보 (5)
      • 블로그팁 (4)
      • 지역정보 (1)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바