일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- file upload
- react
- front-end
- 상속
- 개발이 취미인 사람
- 개발자
- Producer
- SWIFT
- javascript
- node.js
- component
- 조건문
- swagger
- java
- Nest.js
- kafka
- AWS
- props
- It
- vue
- back-end
- 코틀린
- jpa
- 반복문
- Sequelize
- restful api
- class
- spring boot
- Kotlin
- state
- Today
- Total
개발이 취미인 사람
[JavaScript] 함수 표현식&선언식, 화살표 함수(arrow function) 본문
[JavaScript] 함수 표현식&선언식, 화살표 함수(arrow function)
RyanSin 2021. 12. 29. 15:07- 지난 시간
안녕하세요. 지난 시간에는 JavaScript 함수(function)에 대해 알아봤습니다. 혹시 놓치고 오신 분들은 아래 링크를 통해 학습하고 오시는 걸 추천드리겠습니다.
[JavaScript] 함수(function) 정의 및 사용법
- 개요
지난 시간에 작성한 함수에 방식은 함수 선언식이라고 합니다.
JavaScript에는 선언식 방법이 아닌 표현식과 화살표 함수도 지원합니다. 차근차근 하나씩 설명드리겠습니다.
1. 함수 선언식 & 함수 표현식
/**
* @author Ryan
* @description 함수 선언문
*/
function sayApeach() {
console.log("Apeach")
}
/**
* @author Ryan
* @description 함수 표현식
*/
const sayRyan = function () {
console.log("Ryan")
}
sayApeach()
sayRyan()
/**
* - 실행결과 -
* Apeach
* Ryan
*/
JavaScript는 일급 객체 언어이기 때문에 변수에 함수를 할당할 수 있다고 지난 시간에 보여드렸습니다.
함수 표현식은 함수 이름을 없애고 변수에 함수를 할당해서 사용합니다.
실행 결과 두 함수 모두 잘 출력됩니다. 둘 다 사용하는데 문제가 없는데... 아무거나 사용해도 상관이 없지 않을까요?
사실 두 함수에 차이는 호출 가능 범위가 다릅니다.
- 함수 선언문 : 어디서든 호출이 가능
- 함수 표현식 : 함수를 생성(초기화) 한 코드 아래에서만 호출 가능
예시로 바로 보여드리겠습니다.
sayApeach()
sayRyan()
/**
* @author Ryan
* @description 함수 선언문
*/
function sayApeach() {
console.log("Apeach")
}
/**
* - 실행결과 -
* Apeach
*/
/**
* @author Ryan
* @description 함수 표현식
*/
const sayRyan = function () {
console.log("Ryan")
}
/**
* - 실행결과 -
* sayRyan()
* ReferenceError: Cannot access 'sayRyan' before initialization
*/
두 함수 모두 함수를 생성하기 전에 함수를 호출했습니다.
결과를 확인하면 sayApeach(함수 선언식)은 Error가 발생하지 않았습니다. 하지만 sayRayn(함수 표현식)은 Error가 발생했습니다.
함수 선언식으로 선언된 함수는 사용 가능 범위가 해당 파일에 가장 위로 올라갑니다. 이 부분은 JavaScript에서 호이 스팅(hoisting)이라고 합니다. [호이스팅(hoisting)에 대해서는 다음에 학습하겠습니다.]
하지만 함수 표현식은 그렇지 않습니다. 둘에 차이는 이러한 부분이 있습니다.
2. 화살표(arrow) 함수
화살표 함수는 함수 표현식과 호이스팅이 동일합니다. 함수를 선언한 뒤 사용해야 Error가 발생하지 않습니다.
하지만 사용법이 다르기 때문에 예시로 설명드리겠습니다.
/**
* @author Ryan
* @description 중괄호({})가 있는 화살표 함수
*/
const sayApeach = () => {
console.log("Apeach")
}
/**
* @author Ryan
* @description 중괄호({})가 없는 화살표 함수 결과물 바로 리턴
*/
const sayRyan = () => "Ryan"
sayApeach()
console.log(sayRyan())
/**
* - 실행결과 -
* Apeach
* Ryan
*/
화살표 함수는 function 키워드를 제거하고 사용합니다. 또한 중괄호를 제거하면 바로 데이터를 반환합니다.
함수 사용법과 동일하기 때문에 엄청 어렵지는 않습니다.
이번 시간에는 함수 선언식, 표현식 그리고 화살표 함수에 대해 알아봤습니다.
'언어(Programming Language) > JavaScript' 카테고리의 다른 글
[JavaScript] 배열(Array) 개념 및 사용법 (0) | 2022.01.01 |
---|---|
[JavaScript] 객체(Object) 개념 및 사용법 (0) | 2021.12.31 |
[JavaScript] 함수(function) 정의 및 사용법 (0) | 2021.12.29 |
[JavaScript] 반복문(for & while) (0) | 2021.12.28 |
[JavaScript] 연산자(비교 연산자, 동등 연산자, 일치 연산자, 논리 연산자) (0) | 2021.12.27 |