티스토리 뷰

JavaScript

JS - 함수 (일반, 리터럴-익명)

김관장 2022. 2. 21. 17:53

1. 일반 함수

  • 일반적인 함수 선언 
//function 함수명(매개변수 . .){
//   로직 전개
//}

function add(a,b){
	return a+b;
}
console.log( add(1+10) ); // 11

 

2. 리터럴(익명) 함수

  • 함수명이 없는 형태를 가지고 있다.
  • JS는 함수도 데이터형으로 간주하여, 함수 자체를 리터럴로 표현해, 변수에 대입, 다른 함수의 인자로 전달 등이 가능하다.
// function(매개변수 ..){
//	로직전개
// }

let add = function(a,b){
	return a+b;
}
console.log(add(1,10)); //11

3. 차이점과 정리

먼저 호이스팅의 개념에 대해 알아야한다. 호이스팅이란 함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것을 말한다. 이는 호출을 첫 줄에서 하고 마지막 줄에 함수를 정의해도 문제없이 작동되도록 하는 유용한 특성이다.

따라서 일반함수로 정의 했을 때는 함수 전체가 맨위로 올라가므로 호출 위치에 상관없이 사용 가능하나, 리터럴 함수로 정의했을 경우 함수 자체는 변수가 호출(선언) 되었을 때 사용가능 하므로 선언부가 실행부보다 위에 있어야만 한다.

 

  • 일반 함수는 전역, 선언&호출 위치 상관 없다.
    => 재사용하는 함수에 주로 사용한다.
  • 리터럴 함수는 선언이 호출보다 위에 있어야 한다.
    => 한번만 사용하거나 전역적으로 사용 할 필요가 없는 경우 사용한다. (메모리 낭비를 줄일 수 있다.)

'JavaScript' 카테고리의 다른 글

JS - JSX?  (0) 2022.03.31
JS - Map() 과 Set()  (0) 2022.03.02
JS - 불변성(ps. Immutable)  (0) 2022.02.24
JS - 배열 메소드 (forEach, some, every, map, reduce, filter)  (4) 2022.02.21
JS - 동기, 비동기  (0) 2022.02.19
댓글