Arrow function
특징
- 화살표함수는 함수를 식별할 수 있는 식별자(=함수명)가 없음 (익명함수 표현식과 유사)
- 화살표 함수를 호출하기 위해 함수 표현식 방법으로 호출해 줄 수 있음
/* 기존 함수 */
function 함수명 (param1, param2...){
body...
return;
}
/* 화살표 함수 */
() => {
}
✅ 기존 함수를 화살표 함수로 표현하려면?
/* "함수 선언문"방식으로 표현된 함수 */
function sum(num1, num2){
return num1 + num2
}
const result = sum(1, 2);
console.log(result); // 3
/* 식별자가 없는 "화살표 함수" */
(num1, num2) => {
return num1 + num2
}
하지만 이런 형식은 식별자가 없어 호출 할 수 없다.
고로 아래와 같이 "함수 표현식"을 사용하여 변수에 할당 한 뒤, 해당 변수를 호출하는 방식으로 사용할 수 있다.
/* 화살표 함수를 "함수 표현식"으로 사용 */
const sum = (num1, num2) => {
return num1 + num2
}
const result = sum(1, 2);
console.log(result); // 3
화살표 함수 내에 return 문만 있는 형태이면 더 간단하게 표현 가능하다.
const sum = (num1, num2) => num1 + num2;
✅ 사용되는 parameter가 1개이면 '()' 소괄호 생략 가능하다.
const sum = num1 => num1 + num1;
const result = sum(1);
console.log(result); // 2
✅ 전달하고자하는 parameter가 없다면 소괄호만 작성하면 된다.
const sum = () => 123;
const result = sum();
console.log(result); // 123
✅ return에 객체 사용시 "{}"중괄호 밖을 "()" 소괄호로 한 번 더 감싸줘야한다.
const myObject = () => ({
name : "dan",
age : "30"
})
const obj = myObject();
console.log(obj.name); // dan
✅ 화살표 함수를 사용해 중첩된 함수를 더욱 간단히 표현할 수 있다.
const myFunction = (x) => () => x+x
const innerFunction = myFunction(5);
const result = innerFunction();
console.log(result); // 10
이와 같이 화살표를 연쇄적으로 사용할 수 있다.
위의 화살표 함수는 아래의 함수와 똑같은 역할을 한다.
function myFunction(x){
return function innerFunction(){
return x+x;
}
}
const innerFunction = myFunction(5);
const result = innerFunction();
console.log(result); // 10
📚참고 자료
유튜브 "드림코딩 by 엘리" - "자바스크립트 5. Arrow Function은 무엇인가? 함수의 선언과 표현"
유튜브 "수코팅" - "ES6 화살표 함수 기본편"
반응형
'D.evelop > JavaScript' 카테고리의 다른 글
[TIL]Javascript - 객체 접근 Dot Notation, Bracket Notation (0) | 2021.08.22 |
---|---|
[TIL]Javascript - 객체란? (문법, 사용 이유) (0) | 2021.08.20 |
[TIL]Javascript - Return이란? (0) | 2021.08.18 |
[TIL]Javascript - Array Method 4. Sorting Arrays (0) | 2021.08.17 |
[TIL]Javascript - Array Method 3. 자주 쓰이는 메서드 (0) | 2021.08.16 |
댓글