[JavaScript] 함수 정리(2)
Lpla
·2020. 7. 1. 22:12
반응형
함수 선언식 vs 함수 표현식 vs 화살표 함수
1) 함수 선언식
함수를 선언과 동시에 정의한다.
function sayHello() {
alert('Hello');
}
2) 함수 표현식
변수를 선언하고 변수에 함수를 할당한다. 이후 변수를 호출하면 함수가 실행된다.
let sayHello = function() {
alert('Hello');
}l
1) 함수 선언식
함수 선언식은 스크립트의 위치와 상관 없이 어디서든 사용할 수 있다.
let region = 'Busan';
if (region == 'Busan') {
welcome(); // 1번 실행 -> 고향이 같네요.
function welcome() {
alert('고향이 같네요.');
}
welcome(); // 2번 실행 -> 고향이 같네요.
} else {
function welcome() {
alert('반갑습니다.');
}
}
welcome(); // 3번 실행 -> Error: welcome is not defined
2) 함수 표현식
함수 표현식은 스크립트가 해당 함수에 도달했을 때 사용할 수 있다.
let region = prompt('어디 출신인가요?', 'Seoul');
let welcome;
if (region == 'Busan') {
welcome = function() {
alert("고향이 같네요.");
};
} else {
welcome = function() {
alert("반갑습니다.");
};
}
welcome();
3) 화살표 함수
화살표 함수는 함수 표현식의 function 표현보다 더 간결하게 만들 수 있다.
화살표 함수는 익명 함수로만 사용할 수 있다.
let func = (arg1, arg2, ...argN) => expression
함수 표현식으로 나타내면 아래와 같다.
let func = function(arg1, arg2, ...argN) {
return expression;
};
인수가 하나이거나 없을 경우는 조금 다르다.
// 인수가 하나일 경우, 괄호를 생략할 수 있다.
let sum = n => n + n;
alert( sum(3) ); // 6
// 인수가 없을 경우, 빈 괄호를 넣어야 한다.
let sayHello = () => alert('안녕하세요.');
sayHello();
let region = prompt('어디 출신인가요?', 'Seoul');
let welcome;
if (region == 'Busan') {
welcome = () => alert("고향이 같네요.");
} else {
welcome = () => alert("반갑습니다.");
}
welcome();
함수 선언식은 함수가 선언되기 전에도 활용할 수 있기 때문에, 함수 선언식을 따르는 것이 좋다.
함수 선언식은 코드를 유연하게 구성할 수 있고 가독성도 뛰어나다.
함수 표현식은 함수 선언식을 사용하는게 부적절할 때에 사용하는 것이 좋다.
반응형