ES6 문법 맛보기 - 화살표 함수(arrow function)

parksj3205·2019년 8월 30일
0

ES6문법맛보기

목록 보기
2/3
post-thumbnail

1. 함수는 무엇인가요?


1-1. 함수는 원하는 작업을 수행하기 위해 만들어 놓은 코드 블록입니다.

  • 매개변수가 기본 자료형이라면 값이 함수에 전달됩니다.
  • 따라서 함수 내부에서 매개변수의 값을 변경하더라도 함수 밖에는 반영되지 않습니다.
  • 매개변수가 객체라면 객체의 주소값이 함수에 전달됩니다.
  • 따라서 함수 내부에서 매개변수가 가리키는 객체의 속성을 변경하다면 함수 밖의 객체를 변화시킬 수 있습니다.

1-2. 함수도 객체입니다.

  • 함수를 호출하기 위해서는 함수 이름 뒤에 괄호()를 붙힙니다.
  • 함수 이름은 함수를 참조하는데 사용할 수 있습니다.

2. ES6 이전에 함수를 표현하는 방법은?


2-1. 함수 표현식과 함수 선언

  • 함수를 표현하는 방법에는 함수 선언과 함수 표현식이 있습니다.
  • 함수 표현식은 함수의 이름이 없는 익명함수를 변수에 할당하는 방식입니다.

2-2. 함수 표현식과 함수 선언의 다른점

  • 함수 선언은 스코프의 최상단으로 호이스팅됩니다.
  • 반면 함수 표현식은 호이스팅 되지 않습니다.
  • 따라서 함수 표현식으로 선언된 함수는 함수 표현식을 선언하기 전에는 함수를 호출할 수 없습니다.

3. 화살표 함수는 무엇이 다른가요?


3-1. 함수를 표현하는 것이 더 간단해졌습니다.

  • function 키워드를 생략할 수 있습니다.
  • 함수의 매개변수가 1개라면 괄호()를 생략할 수 있습니다.
  • 함수 바디가 표현식 하나라면 중괄호와 return 문을 생략할 수 있습니다.

3-2. 화살표 함수는 항상 익명함수입니다.


3-3. 화살표 함수는 this가 정적으로 묶입니다.

  • ES6 이전의 일반적인 함수를 사용할 경우
  • 화살표 함수를 사용할 경우

3-4. 객체 생성자로 사용할 수 없습니다.


3-5. arguments 변수를 사용할 수 없습니다.

더 공부해볼 부분

  • 함수형 프로그래밍
  • call, apply, bind
  • 클로저
  • 고차함수

참조

0개의 댓글