김 양의 멋따라 개발따기
Javascript - 화살표 함수 표현(arrow function expression) 본문
1. 화살표 함수 표현(arrow function expression)
- this나 super에 대한 바인딩이 없고, methods로 사용될 수 없습니다.
- new.target 키워드가 없습니다.
- 일반적으로 스코프를 지정할 때 사용하는 call, apply, bind methods를 이용할 수 없습니다.
- 생성자(constructor)로 사용할 수 없습니다.
- yield를 화살표 함수 내부에서 사용할 수 없습니다.
- new와 함께 실행할 수 없습니다.
//기본 구문
let x = (a, b) => {return a + b }
//화살표 함수의 유일한 문장이 "return"일 때 "return"과 중괄호를 생략할 수 있다
let x = (a, b) => { a + b }
let x = (a, b) => a + b
//매개변수가 하나뿐인 경우 -> 괄호 생략 가능
let x = (a) => { a + b }
let x = a => { a + b }
//매개변수가 없는 함수는 괄호가 필요
let x = () => { a + b }
//고급 구문
// 객체 리터럴 표현을 반환하기 위해서는 함수 본문(body)을 괄호 속에 넣음
let x = params => ({foo: bar})
// 나머지 매개변수 및 기본 매개변수를 지원함
let x = (param1, param2, ...rest) => { statements }
let x = (param1 = defaultValue1, param2, …, paramN = defaultValueN) => { statements }
// 매개변수 목록 내 구조분해할당도 지원됨
let f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
f(); // 6
2. 결론
- 콜백함수 this에 값을 참조시킬 때 (this 값에 lexical scope를 참조시킬 때)
- map 사용할 때 this를 넘겨주어 코드를 더 쉽게 작성 가능
- 화살표 함수는 본문이 한 줄인 함수를 작성할 때 유용
- 함수 본연의 입출력기능을 아주 직관적으로 잘 표현
- 화살표 함수 VS 일반 함수
- 화살표 함수는 인스턴스를 생성할 수 없는 non-constructor이다.
- 중복된 매개변수 이름을 선언할 수 없다.
- 화살표 함수는 함수 자체의 this, arguments, super, new.target 바인딩을 갖지 않는다.
출처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/Arrow_functions
화살표 함수 - JavaScript | MDN
화살표 함수 표현(arrow function expression)은 전통적인 함수표현(function)의 간편한 대안입니다. 하지만, 화살표 함수는 몇 가지 제한점이 있고 모든 상황에 사용할 수는 없습니다.
developer.mozilla.org
[Javascript] ES6 화살표 함수는 언제 쓰고, 왜 쓸까?
들어가기 전에 잠깐 참고하고 가자.자바스크립트에서 일반 함수는 함수를 선언할 때 this에 바인딩할 객체가 동적으로 결정된다.즉, 함수를 호출할 때 함수가 어떻게 호출되었는지에 따라 this에
velog.io
'Javascript' 카테고리의 다른 글
Javascript - 클로저(Closure) (1) | 2022.11.25 |
---|---|
JavaScript - ES6에서 추가 된 것 (0) | 2022.11.24 |
Javascript - 이벤트 버블링과 캡처링 (0) | 2022.11.15 |
Javascript 돔(DOM)과 가상돔(Virtual DOM) (0) | 2022.11.11 |
Javascript - 렉시컬 환경(Lexical Environment) (0) | 2022.11.07 |