호이스팅과 오버로드
213
작성한 질문수 25
좋은 강의 감사드립니다.
호이스팅과 오버로딩을 배우던 중 의문점이 생겨 질문 드립니다.
먼저, 호이스팅 강의에서 함수 코드 해석의 첫 단계인 함수 선언문 단계에서 book과 function오브젝트가 스코프에 할당이 되고, 두 번째 변수 초기화 단계에서 변수를 초기화하려고 하는데 이미 값이 있으므로 undefined를 할당하지 않고 원래대로 냅둔다고 하셨습니다.
그리고 오버로딩 강의의 두 번쨰 페이지에서는 "{name : value}형태에서 이름이 같으므로 값이 변경된다." 라고 기술하셨습니다.
여기서 제 질문은 같은 해석단계, 즉 여기서는 함수 선언문 해석 단계에서는 값이 대체가 될 수 있는건가요? 아니면 스코프에 값이 할당된 상태에서 초기화를 하려고 하면 프로퍼티 자체가 이미 존재하기 때문에 하지 않는거다 라고 이해를 해야하나요?
감사합니다.
답변 1
1
여기서 제 질문은 같은 해석단계, 즉 여기서는 함수 선언문 해석 단계에서는 값이 대체가 될 수 있는건가요? 아니면 스코프에 값이 할당된 상태에서 초기화를 하려고 하면 프로퍼티 자체가 이미 존재하기 때문에 하지 않는거다 라고 이해를 해야하나요?
// 해석 단계, 아래 순서로 실행했을 때
function book(){};
// 대체(오버라이딩)되지 않습니다.
var book = function(){};
//대체됩니다.
function book(){};
-------------
// 실행 단계, 아래 순서로 실행했을 때
function book(){};
// 대체됩니다.
var book = function(){};
// 호이스팅, value 변숫값을 undefined로 인식하지만, 변수 이름을 인식하지 못해 에러가 나지는 않습니다.
var result = value ? value : 100;
var value = 123;
getBook 실습 예제중 질문드립니다!
0
419
1
__proto__ 에 대해 질문드립니다
0
315
1
호이스팅 코딩시간 풀이
0
358
1
[코딩 시간] JS {name: value} 이해
0
339
1
[[Scope]] 와 [[Environment]]는 같은 개념인가요
0
345
0
slice
0
239
0
스코프가 뭔가요?
0
307
0
어려워요
0
254
0
강사님 변수이름에 get을 붙이는 이유를 알고싶습니다.
0
339
1
[정리 시간] 정확하게 이해했는지 확인 부탁드립니다.
0
300
0
스코프 질문
0
253
1
fn 함수와 book.get 함수 차이 질문드립니다...ㅠㅠㅠ
1
542
1
this binding 논리 질문입니다.
0
279
1
파라미터 값을 매핑할 때
0
251
0
ES6부터는 this 바인딩을 환경 레코드에서 참조한다고 들었습니다.
0
209
0
정리시간 입니다.
0
228
0
정리시간입니다.
6
268
0
정리 시간 입니다.
0
202
0
정리시간입니다.
6
227
0
코딩시간 입니다.
1
221
0
선생님 스코프 질문이 있습니다.
1
238
0
[정리시간] 해보았습니다!
0
173
0
선생님 질문있습니다!!
0
157
0
질문드려도 될까요 선생님..
0
214
0





