// 함수 선언식
function printHelloWorld() {
console.log("Hello World!");
}
printHelloWorld();
// 함수 표현식
let printHelloWorld = function() {
console.log("Hello World!");
};
printHelloWorld();
- 함수 선언식은 호이스팅에 영향을 받는다.
- 함수 표현식은 호이스팅에 영향을 받지 않는다.
함수 선언식은 코드를 구현한 위치와 관계없이 자바스크립트의 특징인 호이스팅에 따라 브라우저가 자바스크립트를 해석 할 때 맨 위로 끌어 올려진다.
// 함수 선언식
printHelloWorld(); // "Hello World!"
function printHelloWorld() {
console.log("Hello World!");
}
- 함수 선언식은 호이스팅에 영향을 받기 때문에 선언한 위치보다 먼저 호출을 해도 오류가 나지 않는다.
// 함수 표현식
printHelloWorld(); // Uncaught ReferenceError
let printHelloWorld = function() {
console.log("Hello World!");
};
- 함수 표현식은 호이스팅에 영향을 받지 않기 때문에 호출을 먼저 하게 되면 오류가 난다.
'JavaScript > JavaScript' 카테고리의 다른 글
[JavaScript] 호이스팅(Hoisting) (0) | 2022.01.17 |
---|---|
[JavaScript] 페이지 라이프사이클 (0) | 2022.01.06 |
[JavaScript] 매개변수(Parameter) (0) | 2022.01.05 |
[JavaScript] 함수(function) (0) | 2022.01.05 |
[JavaScript] 전역 변수 와 지역변수 (0) | 2022.01.05 |