JavaScript에서 함수 타입을 확인하는 방법
아래 문제에서는 제시된 함수가 함수 선언(Function Declaration)인지 함수 표현식(Function Expression)인지 판단해야 합니다.
간단한 경우에는 시각적으로 판단하기 어렵지 않습니다. 하지만 여러분의 판단이 맞는지 어떻게 확인할 수 있을까요? 함수 선언(Function Declaration)과 함수 표현식(Function Expression)의 차이점을 이용하세요: 전자는 정의보다 앞서 호출될 수 있지만, 후자는 그럴 수 없습니다.
다음과 같은 함수가 있다고 가정해 보겠습니다:
let test = function() {
console.log('!');
}
이 함수를 정의하기 전에 호출해 보겠습니다:
test(); // 콘솔에 오류를 출력하면, 함수 표현식(Function Expression)입니다.
let test = function() {
console.log('!');
}
다른 예시입니다:
func(); // '!'를 출력하면, 함수 선언(Function Declaration)입니다.
function func() {
console.log('!');
}
함수 앞에 더하기 기호를 붙여 보겠습니다:
func(); // 콘솔에 오류를 출력하면, 함수 표현식(Function Expression)입니다.
+function func() {
console.log('!');
}
위 함수는 함수 표현식(Function Expression)이며 어떤 변수에도 할당되지 않았기 때문에, 이름 func로는 접근할 수 없어 호출할 방법이 없습니다.
제시된 함수가 함수 선언(Function Declaration)인지 함수 표현식(Function Expression)인지 판단하세요:
let test = function func() {
console.log('!');
}
제시된 함수가 함수 선언(Function Declaration)인지 함수 표현식(Function Expression)인지 판단하세요:
console.log(
function func() {
console.log('!');
}
);
제시된 함수가 함수 선언(Function Declaration)인지 함수 표현식(Function Expression)인지 판단하세요:
+function func() {
console.log('!');
}
제시된 함수가 함수 선언(Function Declaration)인지 함수 표현식(Function Expression)인지 판단하세요:
function func() {
console.log('!');
}