본문 바로가기
개발공부_Blog/JavaScript

function 함수란!

by 독서개발자 2022. 9. 19.

Function 함수란

프로그래밍 언어의 함수는 일련의 과정을 문(statement)으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. 함수로 입력을 전달받는 변수를 매개변수(parameter), 입력을 인수(argument), 출력을 반환값(return value)이라고 한다. 

 

* 문(statement) : 프로그램을 구성하는 기본단위, 최소실행단위

 

함수의 구성요소

 

함수를 사용하는 이유

함수는 필요할 때 여러번 호출할 수 있다. 동일한 작업을 반복적으로 수행해야 한다면 같은 코드를 중복해서 여러번 작성하는 것이 아니라 함수를 재사용하는 것이 효율적이다. 함수는 코드의 재사용성 측면에서 매우 유용하다.

 

자바스크립트 함수의 특징

  • 자바스크립트 함수는 객체 타입의 값이다.
  • 자바스크립트 함수는 일급 객체이다. ( 일급객체 : 함수를 값처럼 자유롭게 사용할 수 있다는 뜻 )

 

 

함수 정의 

(1) 함수 선언문

함수 이름을 생략할 수 없다. 함수 선언문은 표현식이 아닌 문(statement)이다. 

function add(x, y) {
  return x + y;
}

 

(2) 함수 표현식 

자바스크립트 함수는 일급 객체이기 때문에 함수 객체를 변수에 할당할 수 있다. 함수를 호출할 때는 함수 이름이 아니라 함수 객체를 가리키는 식별자를 사용해야 한다 

let add = function foo(x, y) {
  return x + y;
}
// 함수 객체를 가리키는 식별자로 호출
console.log(add(2,5)); // 7

// 함수 이름은 함수 내부에서만 유효한 식별자다
console.log(foo(2,5)); //ReferenceError

 

(3) 화살표 함수 

function키워드 대신 화살표 => 를 사용해 좀 더 간략한 방법으로 함수를 선언할 수 있다. 기본의 함수보다 표현이 간단하고 내부 동작도 간략화 되어 있다. ( 생성자함수 사용x, this사용방식도 다름, prototype프로퍼티x, arguments객체 생성x )

let add = (x, y) => x + y

 

(4) 생성자함수

객체를 생성하는 함수. new연산자와 함께 호출하면 함수 객체를 생성해서 반환한다.

( 생성자 함수로 함수를 생성하는 방식은 일반적이지 않다. 생성자함수는 객체를 생성하는 방식으로 사용! )

2022.09.24 - [개발공부_Blog/JavaScript] - 생성자함수의 객체 생성

 

 

DeepDive 함수

함수함수함수함수함수함수함수 강의로 쑥 훑어보는 것도 좋고, 몇 번 에러나면서 만들어보는 것도 좋았다. 하지만 책으로 읽어보니 더 흥미진진했다. 내가 모르고 따라 쳤던 코드들이었는데 이렇게 책으로 읽고 해석을 해보니 더 이해가 잘갔다. 클론코딩 강의들을 듣지 않고 DeepDive를 먼저 봤다면... 일찍이 책 덮었을 수도 있겠다 싶다.ㅋㅋㅋㅋ '아! 이래서 이렇게 코드를 썼던 거구나' 하는 재미도 꽤 쏠쏠하다

댓글