728x90
[Javascript] Arrow function는 뭐? 왜 쓰는데?
Arrow function의 특징
Arrow function에는 기존 function과 다르게 3가지가 다르다.
- 함수 이름이 없다.
- this가 선언시 정적으로 결정된다.
- arguments 가 없다.
1. 함수 이름이 없다.
함수 선언 방법
function myFunc() {} // 함수 이름 지정
const myFunc = function() {} // 변수에 할당
// Arrow function
const myFunc = () => {} // 변수에 할당
2. this가 선언시 정적으로 결정된다.
일반 함수에서 this는 호출시 동적으로 결정되었다.
하지만 arrow function에서 this는 선언시 정적으로 결정된다. 이 때 this는 함수를 호출한 상위 스코프의 this를 가리킨다. 이를 Lexical this라 한다.
또한 this가 없으므로 binding 하지 못한다.
3. arguments 가 없다.
const myFunc = function (){
console.log(arguements);
}
myFunc(1,2,3,4) // Arguments(4) [1,2,3,4, callee: ~
/////////////////////////////////////////////////////////////////
const myFunc2 = () => {
console.log(arguemnts)
}
myFunc2(1,2,3,4) // error. arguments is not defined
Arrow function의 장점
코드가 짧아진다. 가독성 향상
728x90
'프로그래밍 > Javascript & React' 카테고리의 다른 글
[Javascript] 실행 컨텍스트(Execution Context) (0) | 2022.01.18 |
---|---|
[Javascript] 데이터 타입_원시(Prototype) 데이터 타입과 객체 데이터 타입 (0) | 2022.01.16 |
[Javascript] this 용법 정리 (0) | 2022.01.16 |
[Javascript] 프로토타입(Prototype), 그래서 왜 쓰는데? (0) | 2022.01.15 |
[Javascript] 생성자 함수(클래스), 객체와 객체 지향 프로그래밍 OOP(Object Oriented Programming) (0) | 2022.01.15 |
댓글