무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결모던 자바스크립트 딥다이브 스터디
할당문
안녕하세요 할당문이 표현식이 아닌문이라고 하셨는데할당문은 표현식인문이라서 표현식이 아닌가요??그 자체로 값을 갖으니까 책에서는 표현식인문이라고 해서 헷갈려서 질문드립니다.또한 선언문은 표현식인문이 아니라하셨는데책58p 그림5-4부분 var foo =10;부분 변수 선언문이면서 할당되는데 그러면 foo가 10이라는 값을 갖으니까이부분도 표현식인문인 표현식이 아닌가요? ㅠㅠ설명 부탁드려도될까요 ㅠ.ㅠ
- 미해결모던 자바스크립트 딥다이브 스터디
함수 부분 질문입니다.
안녕하세요 ! 함수부분을 듣다가 이해가 잘 되지 않아 질문드립니다ㅠ 31분 20초정도부터의 내용인데 원시 값은 값에 의한 전달로 num이 primitive로 값 자체가 복사된 걸로 이해가 됩니다. 그런데 primitive는 +=100이 되어 200이 primitive에 담겨있다고 하셨는데 console.log로 로 찍어보니 primitive는 레퍼런스에러가 나옵니다. num은 원시 값이라 바뀌지 않는 것은 이해가 됩니다만 primitive는 정의되지 않고 값이 없는 것이 아닌지 궁금해서 질문 드립니다~
- 미해결모던 자바스크립트 딥다이브 스터디
생성자 함수를 즉시실행함수로 감싸는 이유가 궁금합니다.
예제25-01을 보면 생성자를 즉시실행함수로 감싸는 패턴이 있던데요. var Person = (function(){ function Person(name) { this.name = name; } Person.prototype.sayHi = function(){ console.log('Hi! My name is ' + this.name); }; return Person; })(); var me = new Person('Lee'); me.sayHi(); 굳이 이렇게 하는 이유는 무엇인가요? 아래와 같이 그냥 일반 함수 선언문으로 해도 될것 같은데요. function Person(name) { this.name = name; } Person.prototype.sayHi = function(){ console.log('Hi! My name is ' + this.name); } var me = new Person('Lee'); me.sayHi(); 혹시 함수 호이스팅? 때문에 그런거면 변수에 생성자를 할당해면 될것 같은데요... 즉시실행함수를 쓰는 이유를 도무지 모르겠네요; var Person = function Person(name) { this.name = name; } Person.prototype.sayHi = function(){ console.log('Hi! My name is ' + this.name); } var me = new Person('Lee'); me.sayHi();
- 미해결모던 자바스크립트 딥다이브 스터디
실행컨텍스트에서 BindingObject를 통한 객체의 프로퍼티와 메서드 질문
전역코드 평가 과정에서 var 키워드로 선언한 전역 변수와 함수 선언문으로 정의된 전역함수는 전역 환경 레코드의 객체 환경 레코드에 연결된 BindingObject를 통해 객체의 프로퍼티와 메서드가 된다. 라는 문장이 있는데요. 여기서 "BindingObject를 통해 객체의 프로퍼티와 메서드가 된다"라는 의미를 좀 더 구체적으로 알수 있을까요? 그림이 안그려지네요 ^^; 프로퍼티와 메서드가 된다는 의미가 무엇인지요. 어떻게 객체 이름을 생략하고 접근 가능한지요
- 미해결모던 자바스크립트 딥다이브 스터디
코어 자바스크립트 예제 5-14 질문
안녕하세요. 모던 자바스크립트를 읽다가 책이 빠르게 굵직한 부분을 훑고 싶어 강사님의 저서 '코어 자바스크립트'를 읽던 중 질문이 생겨 질문드립니다. 먼저 강의에 관련된 질문이 아닌 점 죄송합니다. 클로저, 135쪽, 예제 5-14, 부분 적용 함수 구현(1) const partial = function () { // 01 const originalPartialArgs = arguments; // 02 const func = originalPartialArgs[0]; if (typeof func !== "function") { throw new Error("It's not a function."); } return function () { // 07 console.log(arguments); const partialArgs = Array.prototype.slice.call(originalPartialArgs, 1); const restArgs = Array.prototype.slice.call(arguments); // 09 return func.apply(this, partialArgs.concat(restArgs)); }; }; 1. 9번째 줄의 arguments는 7번째 줄에서 return되는 익명함수의 렉시컬 환경에서 새로 생성된 argument이기 때문에 partial함수의 렉시컬 환경의 arguments(2번째 줄)과 다르다. 2. 7번째 줄에서 익명함수 선언 시 9번째 줄의 arguments는 익명함수의 렉시컬 환경에 수집되어 빈 객체 상태로 익명함수가 return된다.(실행 컨텍스트가 활성화 된느 시점이 아닌 선언 시점에 정보가 수집된다.) 3. 후에 21번째 줄에서 익명함수를 할당받은 addPartial 함수가 22번째 줄에서 호출 될때 7번째 줄의 arguments가 arguments object [6,7,8,9,10]로 재할당 된다. 4. 8번째 줄의 originalPartialArgs가 클로저를 이용한 것이다. 처음에 7번째 줄의 익명함수 속 arguments가 상위 스코프의 arguments(2번째 줄)을 참조한다고 생각했고 결과가 달라 고민한 결과 위와 같이 결론을 내렸습니다. 제가 잘 이해한 것인지 확인받고싶어 질문 드렸습니다. 다시한번 강의와 무관한 질문 드려 죄송합니다.
- 미해결모던 자바스크립트 딥다이브 스터디
안녕하세요.
안녕하세요! 강의 정말 잘 보고 있습니다! 덕분에 두꺼운 책이 쓱쓱 넘어가고 있어요! 단톡방이라고 언급을 하시는거 같은데 혹시 어떤 단톡방인가요? 혹시 저도 들어갈 수 있을까요?