[JavaScript] 화살표 함수(arrow function)

rsuubinn·2023년 1월 19일

JavaScript

목록 보기
9/10
post-thumbnail

📗 화살표 함수(arrow function)

화살표 함수 표현은 전통적인 함수표현의 간편한 대안 이다.
하지만 화살표 함수는 몇 가지 제한점이 있고 모든 상황에 사용할 수는 없다.

  • this나 super에 대한 바인딩이 없고, methods로 사용될 수 없다.
  • new.target 키워드가 없다.
  • 일반적으로 스코프를 저장할 때 사용하는 call, apply, bind methods를 이용할 수 없다.
  • 생성자(Constructor)로 사용할 수 없다.
  • yield를 화살표 함수 내부에서 사용할 수 없다.

📗 구문

기본 구문

(param1, param2, ..., paramN) => { statements }
(param1, param2, ..., paramN) => expression
// 다음과 동일함: => { return expression; }

// 매개변수가 하나뿐인 경우 괄호는 선택사항:
(singleParam) => { statements }
singleParam => { statements }

// 매개변수가 없는 함수는 괄호가 필요:
() => { statements }

고급 구문

// 객체 리터럴 표현을 반환하기 위해서는 함수 본문(body)을 괄호 속에 넣음:
params => ({foo: bar})

// 나머지 매개변수 및 기본 매개변수를 지원함
(param1, param2, ...rest) => { statements }
(param1 = defaultValue1, param2, ..., paramN = defaultValueN) => { statements }

// 매개변수 목록 내 구조분해할당도 지원됨
var f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
f(); // 6

화살표(=>) 다음의 괄호 유무는 실행만 하는 자와 값을 반환하는지 여부의 차이다.
함수 정의를 어떻게 표현하는지에 대한 문법이다.

function f() {
  console.log(1);
  return 2;
}

let y = () => { f() }
let z = () => f()

y()
// output: 1
// return: undefined

z()
// output: 1
// return: 2

출처

profile
@rsuubinn

0개의 댓글