[일반 함수 표현]
다음 코드를 실행하면,
const getTwice = function(number) {
return number * 2;
};
console.log(getTwice(5));
const myBtn = document.querySelector('#myBtn');
myBtn.addEventListener('click', function () {
console.log('button is clicked!');
});
10 이 출력된다.
[Arrow Function 표현]
const getTwice = (number) => {
return number * 2;
};
console.log(getTwice(5));
const myBtn = document.querySelector('#myBtn');
myBtn.addEventListener('click', () => {
console.log('button is clicked!');
});
function 키워드를 지우고 파라미터의 소괄호 오른편에 화살표 기호를 표현하면 됨.
위와 똑같은 결과가 출력됨.
다른 식들과 비교해 봤을 때, 다음과 같이 Arrow function 을 사용하면 간결하게 사용할 수 있음.
const getTwice = function(number) { // 함수 선언식
return number * 2;
};
function getTwice(number) { // 함수 표현식
return number * 2;
}
const getTwice = number => number * 2; // Arrow Function
console.log(getTwice(3)); // 6
그러나 파라미터가 두개 이상이거나 파라미터가 없을 경우 반드시 소괄호 작성을 해주어야 함.
const getTwice = number => number * 2;
// const getTwice = (number) => number * 2;
const sum = (a, b) => {
return a + b;
};
const getName = () => {
return { name: '신짱구',};
};
console.log(getTwice(3)); // 6
console.log(sum(3, 2)); // 5
console.log(getName()); // { name : '신짱구' }
이처럼 가독성을 위해 파라미터가 한개인 경우에도 소괄호를 작성해줄수도 있음.
[객체 리턴]
const getObject = function(a, b, c) {
return { 0: a, 1: b, 3: c };
}
리턴값이 객체인경우 ,
const getObject = (a, b, c) => ({ 0: a, 1: b, 3: c });
소괄호를 감싸서 표현할 수 있음.
[arguments]
function normal() {
console.log(arguments);
}
const arrow = () => {
console.log(arguments);
}
normal(1,2,3) // { '0': 1, '1': 2, '2': 3 }
arrow(1,2,3) // Error
주의할 점은, 화살표 함수에서는 아규먼트 객체가 없음.
'JavaScript > Modern JavaScript' 카테고리의 다른 글
[JavaScript] 배열 메소드 forEach 와 map (0) | 2023.04.11 |
---|---|
[JavaScript] sort/ reverse 메소드 (0) | 2023.03.26 |
[JavaScript] 구조 분해 Destructuring (함수) (0) | 2023.02.20 |
[JavaScript] 구조 분해 Destructuring (객체) (1) | 2023.02.20 |
[JavaScript] 구조 분해 Destructuring (배열) (0) | 2023.02.16 |