[JS] 함수 선언식과 함수 표현식, 그리고 호이스팅
자바스크립트에서는 함수가 순서대로 선언되지 않아도 읽을 수 있다. 선언된 함수가 호출보다 아래 있더라도 함수선언식을 사용한다면, 호이스팅에의해 먼저 읽고 실행되는 것이다.
Function Declaration
function funcDeclaration() {
return 'this is a Declaration';
};
// 함수 선언식은 호이스팅이 된다.
Function Expression
funcExpressiong = function() {
return 'this is a Expression';
};
// 함수 표현식은 호이스팅이 불가하다.
Hoisting
코드에서 선언하기 전에 함수를 사용할 수 있게 되는 것이다.
호출한 catName이라는 함수의 매개변수 name에 해당하는 전달인자값을 아직 받은 상태가 아닌데 호출할 수 있다. 함수 선언식이 사용되었기 때문에 가능하다.
function catName(name) { // 함수 선언식
console.log("My cat\'s name is " + name);
}
catName("Tigger");
//"My cat's name is Tigger"
그러나 만약 함수 표현식을 사용했다면, catName의 인자를 받아오지 못할 것이다.
const catName = function() { // 함수 표현식
console.log('My cat\'s name is ' + name);
}
catName('Tiger')'
// "My cat's name is"
Author And Source
이 문제에 관하여([JS] 함수 선언식과 함수 표현식, 그리고 호이스팅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@soor/JS-함수-선언식과-함수-표현식저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)