자바스크립트 함수선언, 함수표현식의 차이 그리고 익명함수 관련 정리
자바스크립트는 함수를 어떻게 정의하느냐에 따라
함수 선언 및 함수 표현식 그리고 익명함수로 분리됩니다.
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 객체에 내장된 속성으로
페이지 로드시 한번 실행되는 속성을 가지고 있습니다.
함수가 필요한 부분에 한번 만 실행되는 것이라면
익명 함수로 사용하는게 코드를 간결하고
프로그램의 응집도를 높게 할 수 있는 방법이 됩니다.
익명 함수를 특정 변수에 대입한다면 그 함수는 함수표현식이 되겠네요.
'공감' 및 '좋아요'는 글쓴이에게 큰 힘이 됩니다!
'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 |