본문 바로가기

JavaScript

[JavaScript] 함수(일반함수, 익명함수, 즉시실행함수, 화살표함수)

함수란?

 

자바스크립트에서 프로그램은 여러가지 명령이 연결되어서 원하는 동작을 처리하게 된다.
이렇게 처리해야될 여러 명령을 하나의 그룹으로 묶어놓은것을 함수라고 한다.
이러한 함수는 필요할 때마다 호출하여 해당 작업을 반복해서 수행할 수 있다.

 

 

함수 정의하고 실행하기

 

함수를 선언할 때는 function 예약어를 사용하며 중괄호를 사용하여 함수의 범위를 설정한다.

함수를 사용할 때는 선언한 함수의 이름을 입력하면 사용이 가능하다. 이를 함수를 호출한다라고 표현한다.

 

 

 

함수의 매개변수(parameter)와 인수(argument)

 

함수 정의 부분에서 괄호안에 지정해 놓은 값을 매개변수라고 한다.
그리고 함수를 호출할 때 괄호안에 입력값을 입력하여 호출하게 되는데,
이때 실제로 입력하는 값을 인수라고 한다. 

 

 

 

 

 

 

 

즉시 실행 함수

 

한번만 실행하는 함수라면 굳이 정의와 호출을 따로 하지않고,
정의하면서 동시에 실행할수도있다. 이것을 즉시실행함수라고 한다.

익명 함수를 사용한다.

딱 1회만 실행되고 다시는 실행하지 않는다

초기화코드나 모듈화 패턴을 만들 때 유용하게 사용된다.

 

(function (params) {

      // 실행코드

} ) (args);

 

 

 

즉시 실행 함수 사용법

 

1. 매개변수 X

 

 


매개변수가 없는경우 뒤에 괄호()를 붙인다.
위의 두가지 예는 괄호의 위치가 조금 다를 뿐 같은 기능의 즉시실행함수이다.

 

 

2. 매개변수 O

 

 

 

예제에서 참고할 사항 : sum을 전역변수로 사용하기 위해서 var나 let예약어를 붙이지않았다.

 

 

 

익명함수

 

함수를 선언할때는 함수의 이름을 지정하는것이 기본이지만, 익명함수는 함수의 이름없이 사용할 수 있다.

익명함수는 함수자체가 식(Expression)이며 리터럴(Literal)방식으로 변수에 담겨 사용하는 함수이다.

익명 함수의 소스 코드는 변수값이므로 끝에 세미콜론 ; 을 붙인다.

호출시에는 변수명을 함수명처럼 사용하면 된다.

 

 

 

화살표 함수 (function예약어를 안쓰고 표현할수있다)

 

ES6 부터 추가된 화살표함수는 선언문을 사용할 수 없고 반드시 표현식으로 작성해야한다. 

즉, 익명함수로서만 사용이 가능하다.

 

 

const hi = () => {alert("안녕하세요?");};

원래 이렇게 작성하지만 중괄호{ }안에 실행할 명령이 하나뿐이라면 중괄호는 생략해도 된다.



 


매개변수도 하나밖에 없다면 괄호를 생략할 수 있다 (user) 를 user로 써도됨



 

문장이 하나라서 중괄호 생략가능, return도 생략가능

 

 

위의 예들은 익명함수를 화살표함수로 표현한것이다.
화살표함수를 사용하면 복잡한문장을 간단하게 줄일 수 있다.