[TIL] JavaScript Function

Ditto·2020년 9월 7일

JavaScript는 함수를 다양한 방법으로 사용한다. 함수는 일급 객체(first-class)이며 유효범위(scope)를 제공한다. 변수에 할당할 수 있으며 다른 함수의 인자로 전달할 수 있고 다른 함수의 반환 값이 될 수도 있다.

함수 표현식 (function expression)

let plus = function(x, y){ // 함수의 이름이 정의되지 않았다
  return x + y;
}
console.log(plus(2, 3)); // 5

함수를 변수에 할당했다. 함수의 이름이 정의되지 않았기에 익명 함수(nonymous function), 무명 함수 표현식(unnamed function expressioin)이라고도 불린다.

기명 함수 표현식(named function expression)

// 기명 함수 표현식
let plus = function plus(x, y){
  return x + y;
}
console.log(plus(2, 3)); // 5

기명 함수 표현식은 함수 표현식에서 이름을 정의한 함수를 말한다. 위 코드에서 함수의 이름을 생략해도 함수의 호출에는 영향을 미치지 않으나 함수 객체의 name property가 빈 문자열이 된다. 만약 우리가 name property를 활용할것이 아니라면 함수의 이름을 생략하여도 괜찮을 것이다.

함수 선언문(function declaration)

function plus(x, y){
  return x + y;
}
console.log(plus(2, 3)); // 5

변수를 선언하듯 함수를 선언한 코드이다. BROWSER가 JavaScript를 해석할 때 함수 선언문으로 작성된 코드는 그 위치와 관계없이 맨 위로 끌어 올려지는데 이를 호이스팅이라고 한다.

profile
늘 성장하는 개발자이고 싶습니다

0개의 댓글