-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
코딩 시간
21.01.26 21:46 작성 조회수 111
0
강사님, 안녕하세요.
아직 많이 부족한 상태이지만, 강사님께서 내주신 숙제를 한번 시도해봤는데..
제가 정확하게 답이 맞는 지 모르겠어 이렇게 질문 게시글에 올립니다.
----------------------------
1 > 함수 선언문, 함수호출(), 함수 선언문
function book(){
function getBook(){
return "책1";
};
// 여기서 함수 호출
console.log(getBook());
function getBook(){
return "책2";
};
};
book();
----------------------------
책2
----------------------------
*이유 ? 자바스크립트 같은 경우에는 함수가 정의된 것이 있는지 전체적으로 확인하고 실행하기 때문에 아래에서 책2가 책1보다 후에 생성된 getBook()이기 때문에 책2가 출력되는 것이라고 생각한다.
----------------------------
2 > 함수 표현식, 함수 호출(), 함수 표현식
function book(){
var getBook = function(title){
return "책1";
};
// 여기서 함수 호출
console.log(getBook());
var getBook = function(title){
return "책2";
};
};
book();
----------------------------
책1
----------------------------
*이유 ? 바로 위에서 책1로 지정하고 출력하였기 때문에 책1이 출력되며 만약 책2로 지정한 후에 출력한다면 책2로 출력된다.
----------------------------
3 > 함수 선언문, 함수 호출(), 함수 표현식
function book(){
function getBook(){
return "책1";
};
// 여기서 함수 호출
console.log(getBook());
var getBook = function(title){
return "책2";
};
};
book();
----------------------------
책1
----------------------------
*이유 ? 초기화 단계에서 값이 있는 경우에는 무시하고 초기화를 하지 않는다.
----------------------------
4 > 함수 표현식, 함수 호출(), 함수 선언문
function book(){
var getBook = function(title){
return "책1";
};
// 여기서 함수 호출
console.log(getBook());
function getBook(){
return "책2";
};
};
book();
----------------------------
책1
----------------------------
*이유 ? 초기화 단계에서 값이 있는 경우에는 무시하고 초기화를 하지 않는다.
----------------------------
감사합니다.
답변을 작성해보세요.
0
김영보
지식공유자2021.01.26
문맥이 맞지 않는 것도 있으며 강좌 내용을 완전하게 이해하지 못한 것도 있습니다.
알려 드릴 수는 있지만, 이것은 중요한 실행 구조이므로 시간이 걸리더라도, 혼자서 코딩을 통해 체험으로 내 것으로 만들어야 합니다.
코드 앞에 debugger;를 작성하고 실행하는 라인 단위로 따라가면서 오른쪽의 프로퍼티 창에서 변하는 값, 형태를 면밀하게 체크하고 이해하기 바랍니다. 이것을 정확하게 이해하지 못하면 다음 강의부터 논리가 만들어지지 않으니 여기서 매듭을 짓고 넘어가야 합니다.
답변 1