자바스크립트에서 함수 왼쪽의 표현식
다음 코드를 살펴봅시다:
+function func() {
console.log('!');
}
이미 아시다시피, 이 함수는 이름이 지정되어 있더라도 함수 표현식입니다(이름의 존재가 전혀 기준이 아니라는 점은 이미 알아냈습니다). 이 더하기를 제거하면 함수 선언이 됩니다:
function func() {
console.log('!');
}
함수 앞 줄에 +를 넣어 봅시다 - 다시
함수 표현식이 될 것입니다:
+
function func() {
console.log('!');
}
이제 더하기 뒤에 숫자 1
과 세미콜론을 넣으면 - 우리의 함수는 함수
선언이 됩니다:
+1;
function func() {
console.log('!');
}
왜 그런가: 첫 번째 줄에 세미콜론으로 닫힌 하나의 완성된 명령문이 작성되어 있기 때문입니다. 따라서 이 명령문은 우리의 함수에 아무런 영향을 미치지 않습니다.
사실 세미콜론은 제거할 수 있습니다, 자바스크립트에서는 필수가 아니기 때문입니다 - 함수는 여전히 함수 선언으로 남습니다:
+1
function func() {
console.log('!');
}
하지만 1 뒤에 또 다른
더하기를 붙이면, 함수는 함수 표현식이 됩니다:
+1+
function func() {
console.log('!');
}
왜 그런가: 첫 번째 줄에 완성되지 않은 표현식이 있기 때문입니다 - 더하기가 있고 그 뒤에 아무것도 없습니다. 따라서 자바스크립트 인터프리터는 이 더하기가 아래 줄, 즉 우리의 함수에 속한다고 생각합니다.
반면 첫 번째 줄에 완성된 표현식이 있으면, 자바스크립트는 자동으로 세미콜론을 넣고 이 표현식은 우리의 함수에 아무런 영향을 미치지 않습니다.
제시된 함수가 함수 선언인지 함수 표현식인지 결정하세요:
-
function func() {
console.log('!');
}
제시된 함수가 함수 선언인지 함수 표현식인지 결정하세요:
-1;
function func() {
console.log('!');
}
제시된 함수가 함수 선언인지 함수 표현식인지 결정하세요:
-1
function func() {
console.log('!');
}
제시된 함수가 함수 선언인지 함수 표현식인지 결정하세요:
1
function func() {
console.log('!');
}
제시된 함수가 함수 선언인지 함수 표현식인지 결정하세요:
-1-
function func() {
console.log('!');
}