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를 먼저 봤다면... 일찍이 책 덮었을 수도 있겠다 싶다.ㅋㅋㅋㅋ '아! 이래서 이렇게 코드를 썼던 거구나' 하는 재미도 꽤 쏠쏠하다
'개발공부_Blog > JavaScript' 카테고리의 다른 글
let, var, const 변수, 상수를 선언하는 키워드 (0) | 2022.09.21 |
---|---|
var, let 키워드의 변수 생성과정과 TDZ(일시적 사각지대) (0) | 2022.09.21 |
원시값과 객체의 비교 : 값이 할당되고 복사되는 방식의 차이 (0) | 2022.09.18 |
객체리터럴 (0) | 2022.09.17 |
JSON.stringify() - 객체, 값을 JSON문자열 형태로 (0) | 2022.09.04 |
댓글