일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IntelliJ
- 티스토리챌린지
- gtihub
- docker 명령어
- git pat
- 11월순위
- bigquery
- 르세라핌
- 애널리틱스4
- 도커이미지
- ci/cd
- 데이터내보내기
- DBMS
- Python
- java
- spring
- JPQL
- pat발급
- docker
- datagrip
- ANTIFRAGILE
- 명령어
- db종류
- 컬렉션프레임워크
- analytics4
- git branch 삭제
- JPA
- 오블완
- codeium
- Today
- Total
hanker
JS - "=>" 화살표 함수(Arrow Function) 표현식 본문
화살표 함수(Arrow Function)는 ES6에서 도입된 새로운 함수 정의 방식으로, 기존의 함수 표현식을 간결하게 작성할 수 있는 문법이다.
화살표 함수 표현식에 대해서 알아보자
1. 간결함
화살표 함수 표현식
const sum = (a, b) => a + b;
console.log(sum(1, 5))
위 코드를 보면 sum은 두 매개변수를 받아 그 합을 반환하는 함수이다.
=> (화살표) 를 사용하여 함수를 정의하고, {} (중괄호)와 return 키워드를 생략할 수 있으며, 표현식이 한 줄인 경우 결과가 자동으로 반환된다.
기존 함수 표현식
const sum = function(a, b) {
return a + b;
};
console.log(sum(1, 5))
확실히 화살표 함수를 사용하게 되면 간결해지고 가독성이 좋아진다.
2. this 바인딩
화살표 함수 표현식
function PersonArrow(name) {
this.name = name;
setTimeout(() => {
console.log(this.name);
}, 1000);
}
const name = new PersonArrow("hanker");
화살표 함수는 자신의 상위 스코프에서 this를 가져온다. 즉, 화살표 함수는 this를 내부적으로 바인딩하지 않기 때문에 콜백 함수나 클래스 메서드 등에서 this문제를 해결하는데 유리하다.
기존 함수 표현식
function Person(name) {
this.name = name;
setTimeout(function() {
console.log(this.name);
}, 1000);
}
const person1 = new Person('hanker');
기존의 함수 표현식은 실행되는 문맥에 따라 this가 동적으로 바인딩된다. 이 말은 메서드로 호출되거나, 일반 함수로 호출 될 경우에 this의 값이 다를 수 있다.
3. arguments 객체
화살표 함수 표현식
const arrowFunc = (...args) => {
console.log(args);
};
arrowFunc(1, 2, 3);
화살표 함수에는 arguments 객체가 존재하지 않으며, 필요한 경우 스프레드 연산자 (...args)를 사용해야 한다.
기존 함수 표현식
function traditionalFunc() {
console.log(arguments);
}
traditionalFunc(1, 2, 3);
기존 함수 표현식은 함수 호출 시 전달된 인수를 담은 arguments 객체를 사용할 수 있다.
4. 주의사항
1. 객체 리터럴 반환: 객체를 반환할 때는 객체 리터럴을 괄호로 감싸야 한다.
const createObject = () => ({ key: 'value' });
중괄호를 그대로 사용하면 코드 블록으로 해석되기 때문에 에러가 발생할 수 있다
2. 생성자 함수로 사용할 수 없음: 화살표 함수는 생성자 함수로 사용할 수 없다.
끝으로..
화살표 함수는 코드의 간결성을 높이고, 특히 콜백 함수에서 this 문제를 해결하는 데 유용하다.
하지만, arguments 객체가 필요하거나 생성자 함수로 사용해야 할 때는 전통적인 함수 표현식을 사용하는 것이 더 적합하다
'JavaScript' 카테고리의 다른 글
JS - 변수 선언 var, const, let 차이점과 사용 방법 (2) | 2024.11.19 |
---|---|
JavaScript - Window.open() (0) | 2024.09.04 |
JavaScript - 현재 달의 첫째 날, 마지막 날 구하기 (1) | 2024.04.20 |
Javascript - 이전달 구하기 new Date() (0) | 2024.03.31 |
Javascript - 하이픈(-) 전체 제거 및 변경 (0) | 2024.03.31 |