함수 리터럴
함수 정의 (함수 선언문, 함수 표현식)
💡 함수 선언문 : 표현식이 아닌 문 💡 함수 표현식 : 표현식인 문 함수 선언문 // 함수 선언문 function add(x, y) { return x + y; } // 함수 참조 // console.dir console.log와는 달리 함수 객체의 프로퍼티까지 출력한다. // 단, Node.js 환경에서는 console.log와 같은 결과가 출력된다. console.dir(add); // fadd(x, y) // 함수 호출 console.log(add(2, 5)); // 7 // 함수 선언문은 함수 이름을 생략할 수 없음 // 함수 선언문은 표현식이 아님 function (x, y) { return x + y; } // SyntaxError: Function statements require a fu..
함수 호이스팅
💡 함수 선언문 : 선언문 이전에 호출 가능, 함수 호이스팅, 함수 객체 초기화 💡 함수 표현식 : 표현식 이전에 호출 불가능, 변수 호이스팅, undefined 초기화 함수 생성 시점과 함수 호이스팅 함수 선언문 function add(x, y) { return x + y; } 함수 객체로 초기화 함수 정의 → 런타임 이전 함수 객체가 먼저 실행 (자바스크립트 엔진은 함수 이름과 동일한 이름의 식별자를 암묵적으로 생성, 생성된 함수 객체를 할당) 선언문 이전에 호출하면 함수 호이스팅에 의해 호출이 가능 함수 표현식 var sub = function add(x, y) { return x + y; } undefined로 초기화 변수 선언은 런타임 이전에 실행되어 undefined로 초기화 변수 할당문의 값..