22,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결코어 자바스크립트
var와 const의 차이?
const a = 10; const obj = { a: 20, b() { console.log(this.a); // this === obj function c() { console.log(a); // 10 console.log(this); // window console.log(this.a); // undefined } c(); } } obj.b(); 위 코드에서 function c() 내부의 console.log(this.a)가 undefined를 출력하는 이유가 뭘까요? 전역공간에서 a를 var로 선언하면 10이 나오는데, const로 선언하면 undefined가 나오네요. 어떤 원리인지 궁금합니다. + 좋은 강의 정말 감사드립니다! 덕분에 JS를 보는 눈이 확 트인 것 같아요.
- 미해결코어 자바스크립트
헛갈리는데,
안녕하세요. 영상내용 + 삼각형 그림을 같이 봤을 때 조금 헛갈려서 질문드립니다. 객체를 인스턴스로 복사했을때, prototype의 함수들(ex map(), foreach 등..)이 상속 되는건지, 상속이 아니라 사용할 수 있도록 '연결'되는건지 궁금합니다.
- 미해결코어 자바스크립트
코어 자바스크립트 책과 비교
안녕하세요. 코어 자바스크립트 책을 보다가 인터넷 강의까지 수강하게 되었는데요. 아직 인터넷 강의에서 "기본형과 참조형의 종류 및 차이점" 밖에 보지 못했는데, 책에서의 설명과 강의에서의 설명이 좀 다른 것 같아 혼란스럽네요. 예를 들어 1. 책에서는 데이터 영역에 데이터를 할당하기 전에 같은 값을 갖는 데이터가 메모리에 있는지 검색한 후에 값이 없으면 할당한다고 써있는데, 강의에서는 검색 과정없이 같은 값이라도 그냥 할당하는 것으로 설명하셨고, 2. 책에서는 변수만 선언한 경우(예를 들어 var a;) 데이터를 저장하기 위한 메모리 영역을 할당하지 않고 변수명을 저장하기 위한 메모리 공간만 할당하는 것처럼 써있는데, 강의에서는 데이터를 저장하기 위한 메모리 영역을 우선 할당하고, 변수명을 저장하기 위한 메모리 공간에 그 데이터 메모리 주소를 저장하는 식으로 설명해주셨습니다. 그 외에 참조형에 있어서도 책과 강의가 약간 다르게 설명되어 있는 것 같은데 이해하는데는 어느 쪽을 따라가도 상관없을 것 같지만, 어느게 더 실제 동작에 가까운 것인지 궁금합니다. 그리고 혹시 이 주제(변수 선언 및 데이터 할당시 메모리에서 일어나는 동작)와 관련해서 참고할만한 자료가 있다면 알려주셨으면 합니다. 감사합니다.
- 해결됨코어 자바스크립트
.forEach 에서 this 와 thisArg 의 .length가 다를 경우
.forEach 에서 this 와 thisArg 의 .length가 다를 경우,this.length에 의해 바운드 되겠네요.
- 미해결코어 자바스크립트
질문이요
9번에서는 inner 스코프만 스캔하고 undefined을 출력하는데, 왜 6번에서는 outer에 없으니 global까지 스캔해서 a값을 찾나요? 함수안의 함수는 스코프가 달라지나요? 그리구 var a=3;을 지우니까 오히려 inner함수의 콘솔도 1이 찍히던데 차이가 뭔가요?ㅠㅠ
- 미해결코어 자바스크립트
정재남 강사님? 선배님에게 질문하나 드려요!
안녕하십니까? 오랜만에 강의 다시 한번 상기시키는 개념으로 보고있다가 궁금한점이 생겨서 질문 남겨요! 원시타입 같은 경우 변수를 생성하면 해당 실행컨텍스트내에 메모리가 할당이 되고 참조타입 같은 경우는 Heap 영역에 생성이 되는걸로 알고 있습니다. 그런데 궁금한점이 const 같은 키워드로 변수를 선언하면 이 변수는 더이상 값을 할당할수없어! 라고 되는데 이게 메모리에서 어떤식으로 락(?)이 걸려서 동작하는지 궁금합니다. 추가로 Object.freeze() 시, 해당 레퍼런스로 참조한 데이터를 변경하지 못하게 막아버리는데 이게 메모리에서 어떤식으로 동작을 하는지 궁금합니다!
- 미해결코어 자바스크립트
init() 을 쓰는 이유 질문드려요!
클로저 강의를 듣다보니 문득 궁금한것이 생겼는데요. 자바스크립트에서는 다른 언어들(c나 자바) 처럼 init 이라는 개념자체가 없다고 알고있습니다. 어느 패턴은 js 파일 맨 밑에 var test = document.getElementById("test"); // 함수부분은 생략. function init() { testFunc(); test.addEventListener("click", test2Func); } init(); 위와 같이 init 함수를 임의로 만들어놓드라구요. (제가 생각하기에는) 그 안에다 최초 실행되는 이벤트들을 보기 좋게 모아둔 함수 인것 같은데요. 구글에 검색해보았을때는 키워드가 잘못된건지, 위 코드와 같은 패턴에 대한 정보를 찾지 못하겠습니다.ㅜ 대강... 조각들을 맞춰보면 변수들을 계속해서 유지? 사용하기 위한?? 초기화...?? 를 위한 함수 라는데 그게 정확히 있고 없고에 차이를 모르겠습니다. 답변 주시면 감사하겠습니다! 강의 항상 잘보고있어요
- 해결됨코어 자바스크립트
1강 데이터 타입
안녕하세요! 코어 자바스크립트 책를 구입해서 이 강의와 같이 듣고 있는 학생입니다! 그런데 1강에서 책과 다른 부분들이 많이 있는것 같이서 질문드립니다. 먼저 변수를 선언만 할때 책에서는 비어있는 공간을 확보해서 이름만 붙인다고 했는데 강의에서는 데이터 공간을 먼저 확보하고 변수공간과 연결한 후 이름을 붙인다고 하셨습니다. 제가 보기에는 둘이 좀 다른것같아서 질문드립니다. 사실 1강은 책과 강의가 거의 다 조금씩 다른것 같은데 이럴때는 책을 따라가면 되나요? 강의 내용을 바탕으로 책을 더 나중에 쓰셨다고 알고있어서 그렇습니다. 물론 큰 의미는 비슷하지만 정확히 똑같지는 않은 부분이 있어서 이부분을 질문드립니다.
- 해결됨코어 자바스크립트
addEventListener 콜백함수의 인자 확인법??
<div class="ttt1"></div> <script> const test = document.querySelector(".ttt1"); function testFunc(x, y, z) { console.log(this, x, y, z); } test.addEventListener("click", testFunc); </script> MDN 보니까 콜백함수 내에서 this 가 무얼 가리키고, 정해져있는 인자가 무엇무엇인지 에 대한게 안보이더라구요. (물론 강의에서 설명해주신것으로 이해는 했습니다.) 혹시 어디서 볼수있을까요?
- 미해결코어 자바스크립트
Person 객체를 생성할 때 this사용법 문의
function Person(name, age) { this.name= name; this.age = age; } Employee객체도 이런식으로 생성이 되어있는데 이 부분에서 궁금한 점이 있습니다. this는 함수안에서 사용될 때는 window 혹은 global 객체를 가리키는 거라고 하셨는데 그럼 위 코드에선 this를 사용하나 사용하지 않으나 같은 상황이 아닐까, 어떤게 다른건가 궁금합니다. this를 사용해도 window 객체를 가리키고 this를 사용하지 않아도 전역변수인거니까 결국은 같은 거 아닌가요..? 제가 어떤 걸 잘못이해하고 있는건지 알려주시면 감사하겠습니다.
- 해결됨코어 자바스크립트
extendClass 함수 구현시 IIFE를 사용하는 것과 그냥 일반 함수를 사용하는 것의 차이가 무엇인지 궁금합니다.
var extendClass1 = (function() { function Bridge() {} return function(Parent, Child) { Bridge.prototype = Parent.prototype; Child.prototype = new Bridge(); Child.prototyep.constructor = Child; } })(); var extendClass2 = function() { function Bridge() {} return function (Parent, Child) { Bridge.prototype = Parent.prototype; Child.prototype = new Bridge(); Child.prototype.constructor = Child; } } var extendClass3 =function (Parent, Child) { function Bridge(){}; Bridge.prototype = Parent.prototype; Child.prototype = new Bridge(); Child.prototype.constructor = Child; } 위의 extendClass1, 2, 3의 차이가 무엇인지 궁금합니다.
- 미해결코어 자바스크립트
안녕하세요 혹시 ppt 자료는 어디서 받을 수 있나요?
안녕하세요 혹시 ppt 자료는 어디서 받을 수 있나요? ppt를 프린트해서 정리해서 보고자 합니다.
- 미해결코어 자바스크립트
혹시 곧 출간되는 책이랑은 뭐가 다른가요?
안녕하세요. 개발자님이 곧 책을 출판하시는 걸 알게 되었는데요. 곧 출간하실 책이랑 강의랑 목차가 같던데, 혹시 강의랑 책은 어떻게 다른가요? 책이 더 자세한 편인가요? 그리고 인사이드 자바스크립트랑은 어떻게 다른지도 궁금합니다! 좋은 강의 감사합니다.
- 미해결코어 자바스크립트
Bridge 없이 상속하는 부분에 관하여..
안녕하세요. 설명해주신 강의 잘 들었습니다. 수업을 듣다가 궁금한 점이 있어 질문을 드립니다. super 에 정의된 properties (name, age)를 상속하는 것을 피하기 위하여 bridge를 사용하였는데, 이런식으로 Employee.prototype = Person.prototype 바로 넣으면, Bridge 없이 Person에 정의된prototype 만을 받을 수 있게 구현할 수 있는 것이 아닌가요? Employee.prototype = Person.prototype Employee.prototype.constructor = Employee Employee.prototype.getPosition = function(){return this.position}
- 미해결코어 자바스크립트
Prototype을 사용하여 Method를 추가하는 이유
안녕하세요 질문이 있어서 문의드립니다. 단순히 Person이라는 생성자로 생성된 Instance가 getOlder와 getAge라는 Method를 가지게 하는 것이 목적이라면 Prototype으로 나중에 추가할 필요 없이 function Person(n, a) { this.name = n; this.age = a; this.setOlder = function( ... this.getAge = function(... } 와 같은 방식으로 선언하면 되는 것 아닌가요? 굳이 Prototype을 통해 Method를 추가를 하는 이유가 궁금합니다.
- 해결됨코어 자바스크립트
클로저 예제가 이해되지 않습니다.
강의 외적이지만, '인사이드 자바스크립트' 라는 책을 언급해주셨는데, 이 부분 중 클로저 부분이 이해되지 않습니다. 여기서 특히나 func ? func(this.greeting) : this.func(this.greeting); 부분이 더 이해되지 않습니다. 책보다 조금 더 쉽게 풀이해서 설명해주실 수 있을까요?? 그리고 이 부분도 잘 모르겠습니다. 양이 너무 많나요? ㅠㅠ 여기부분 설명이 너무 불친절하다고 느껴집니다 이해할 수 있는 키워드만이라도 적어주실 수 있을까요??
- 미해결코어 자바스크립트
호이스팅 우선순위 질문
변수선언과 함수선언 중 먼저 호이스팅되는 우선순위는 없나요?
- 미해결코어 자바스크립트
콜백과 프로미스의 관계는 무엇인가요?
콜백이 시간이 오래 걸리는 일을 할 때 (예를 들면 데이터베이스에서 엄청난 양의 데이터를 가지고 온다거나, authentication 을 한다거나) 사용이 된다고 들었는데요, Promise 라는 것에 대해서도 배우게 되어 조금 헷갈립니다.프로미스에 대한 글을 읽어보았지만 잘 이해가 되지 않습니다ㅠㅠ. 콜백과 프로미스의 차이가 명확하게 설명된 글이 있을까요? 강사님께서 설명해주셔도 정말 감사하겠습니다!
- 미해결코어 자바스크립트
위 질문과 같은 질문입니다 [object Array]가 나오는이유
arr.toString을 join("-")등을 넣어줘서 개조를 해도 arr.proto.toString.call(arr) 을 하면 1,2,3이 나오는이유는 이전 강의에서 말씀하신것처럼 this를 arr로 바인딩 해줬기 때문이라고 생각을 합니다. (언더바언더바는 입력해도 여기나오지않네요) 궁금한점은, toString함수가 Object의 프로토타입에 정의되어있으니 arr.proto.toString 과 arr.proto.proto.toString는 같은 toString함수인데, call을 이용해서 arr로 binding을 하면 동일하게 1,2,3이 나와야하지않나요?? [object Array]이 나오는 이유를 여쭤봐도될까요? 두 출력결과가 다른이유는 arr.proto.toString함수와 arr.proto.proto.toString가 다르다고 생각하면될까요? toString함수는 Object.prototype에 정의되어있는게 맞는데 그걸 그대로상속안하고 Array.prototype.toString으로 재정의해주었다고 보면되는건가요?
- 해결됨코어 자바스크립트
클래스 상속 질문입니다.
Person 클래스에서 getName 과 getAge 를 정의할때 Person.prototype안에 정의하셨는데, 그렇게 해야하는 특별한 이유가 있는지요 ?function Person(name, age) {this.name = name || 'noname';this.age = age || 'noage';this.getName = function(){ return this.name; }this.getAge = function(){ return this.age; }}이렇게 Person 클래스안에 바로 정의해서 쓰면 안되는 건가요 ?직접 해보니까 메소드 상속은 똑같이 이루어 지고 해당 메소드를 바로 볼 수 있냐 아니면 prototype을 타고 위로 올라가서 봐야하냐의 차이밖에 없는거 같은데...